コンテンツに移動
AI & 機械学習

ML の利用で魔法のように生活が変化

2021年3月2日
Google Cloud Japan Team

※この投稿は米国時間 2021 年 2 月 18 日に、Google Cloud blog に投稿されたものの抄訳です。


機械学習を楽しく学ぶ方法の一つが、個人的なプロジェクトを自ら構築することです。本投稿ではその方法についてご説明します。

その昔、私は自分のウェブサイトを構築しながらコーディングを学ぶことにしました。コンピュータについての知識がまったくなく、サーバーが何なのかさえ知りませんでしたが、学ぶべきテクノロジーの知識がいくらでもあり、それを学びたいという欲求も無限大だと感じていました。夜、横になったまま、自分のウェブサイトの見た目をよくするさまざまな方法(パララックスを使った星のスクロール、無数の Google Fonts)を考え、これから構築したいいろいろな個人プロジェクトについて思いを馳せました。

何年か経ち、私はプロのエンジニアとして自分の陳腐な個人的ウェブサイトよりも、客観的にもっとクールで、洗練された技術的な問題を取り扱うようになりました。とはいえ、コードを学び始めた頃のあの「純真な驚き」は、今ではあまり感じられなくなってしまいました。

技術関係の仕事をされている方ならご存知のように、この職業では一生が勉強です。少し目を離せば、最新技術だと思っていたあらゆるソフトウェアが、いつの間にか完全に置き換わってしまいます(そのソフトウェアが、私が未だに終了方法がわからない Vim なら話は別です)。

コンピュータ サイエンスにおける顕著な例の一つが機械学習(ML)です。私たちのほとんどは、学校でコンピュータ サイエンスを勉強した人も含め、大学で ML について学んだことはなかったと思います。しかし、この技術はまもなく普遍的なものとなり、あらゆる領域でのソフトウェア開発を転換させていきます。私は「機械学習はどこから学べばよいですか?」という質問を他のどの問いよりも受けますが、これは当然のことだと思います。

通常、私は Google の Machine Learning Crash コースや、理論から実践までの基礎を扱った書籍『Hands-On Machine Learning』、Andrew Ng の標準的な Coursera 講座といったリソースをおすすめしています。

ただし、私と同じように実際に構築しながら学ぶ事が好きな方は、ご自身でソフトウェアを作成しながら ML を学ぶことを検討しましょう。個人プロジェクトは、新しい技術を学ぶ楽しい、そして役立つかもしれない方法の一つであるだけでなく、本番環境での機械学習の開発で直面している難題について学ぶうえで、非現実的な宿題の課題よりも優れた方法でもあります。

私がパンデミックの初期に大量の空き時間が突然できてしまった際には、こんな課題を自分自身に与えてみました。「自分の人生の問題を解決する個人プロジェクトを構築すれば、機械学習についてさらに学ぶことは可能なのか?」。それ以来、私は家族の動画をインテリジェントに検索する手法、テニスのサーブの改良、動画の翻訳、新しい焼き菓子のレシピの考案など、ML のさまざまな使い道を実践しました。

以下では、こうしたプロジェクトのまとめと、そのソースコード、チュートリアルの YouTube 動画、詳しい手順を記載したブログ投稿を示しています。新しい手法とツールの紹介や、そうしたものをまとめて役立つアプリに仕上げる方法の説明を通じて、こうしたプロジェクトの構築が楽しく、学習につながると感じていただけましたら幸いです。そしてできることなら、ML によるご自身の努力目標の着想につながることを願っております。何か良いものができあがったら、ぜひとも私に教えてください。それまでは、作ることをお楽しみください。

機械学習を使って作る

家族のスマート動画アーカイブ

Video Thumbnail
  • 作成するもの: 文字起こし(会話内容)と画像により家族の動画を検索可能なアーカイブ(「誕生日」、「自転車」、「ビデオゲーム」の検索)。

  • 学習内容: 

    • ごく一般的な機械学習ユースケース: 複雑なタイプのデータを簡単に並べ替えて検索できるようにする

    • Video Intelligence API の使い方

    • Flutter フロントエンド、サーバーレス Firebase バックエンド、サービスとしての検索(Algolia を利用)による、ML を利用したアプリの設計方法。

Video Thumbnail

Discord モデレーター bot

  • 作成するもの: チャット プラットフォーム用 bot の Discord。有害、攻撃的、冒とく的、過度な連続投稿のフラグを付けることが可能

  • 学習内容:

    • テキスト分析のための Perspective API の使い方

    • チャット アプリケーションでの ML の使い方

    • 白黒のはっきりしない難しい問題に対する機械学習使用の考え方

Video Thumbnail

AI はアスリートの技能を高められるか

  • 作成するもの: テニスのサーブとテニスボールの軌跡(またはゴルフのスイングや野球のピッチング)を追跡可能で、このデータを分析して改良のヒントを提示する Jupyter Notebook。Qwiklab をご参照ください。

  • 学習内容:

    • 小規模なデータセットで洗練された ML を行うための裏技

    • 単純な計算でポーズを組み合わせて人体の動きを理解する方法

    • Video Intelligence API の使い方

    • AutoML Vision の使い方

Video Thumbnail

NLP を使用してビデオゲームの世界をスマートにする

別名、言語と Semantic ML を利用したアプリの構築

  • 作成するもの: 

    • ビデオゲームの世界がユーザーのフリーテキスト入力に反応するようにする、シンプルな言語ベースのシステム


  • 学習内容:

    • すべての NLP で役立つものの一つである Sentence Embedding の使い方

    • セマンティック テキスト検索の実装方法

    • テキストのクラスタ化方法

    • 基本的な会話型 bot の実装方法

    • このすべてを Google Sheet で行う方法

Video Thumbnail

PDF からオーディオブックへのコンバータ

  • 作成するもの: PDF を MP3 オーディオブックに変換するコード

  • 学習内容:

    • Vision API を使用して PDF からテキストを抽出する方法

    • Text-to-Speech API を使用して読み上げを行う方法

    • Math Hacks を使用してドキュメントのレイアウトを解析する方法

Video Thumbnail

ML による動画の翻訳と吹き替え

  • 作成するもの: 自動的に動画の文字起こし、翻訳、吹き替えを行うことのできるコード。

  • 学習内容:

    • Speech-to-Text、Translation、Text-to-Speech の組み合わせ方

    • 音声文字変換と翻訳の品質改善方法

    • Python での動画と音声の取り扱い方法

Video Thumbnail

AI はおいしい焼き菓子のレシピを作れるか?

  • 作成するもの: レシピを分類し、さらには新しいレシピをも作成可能なノーコード機械学習モデル

  • 学習内容:

    • AutoML Tables を使用して表形式(「スプレッドシート」)データ用のノーコード機械学習モデルを構築する方法

    • ML 説明可能性機能によって、モデルがそのような意思決定を行う理由を理解する

Video Thumbnail

ノーコードのブラウザ内 ML

  • 作成するもの: ポーズ、映像、音に基づく超高速な機械学習モデル

  • 学習内容:

    • シンプルなニューラル ネットワークの構築(コーディングなし)に必要なものは何か

    • Teachable Machine を使用してブラウザ内で実行される超高速モデルの構築方法

Video Thumbnail

AI による服装の支度

  • 作成するもの: 自分の洋服ダンスの写真とファッショナブルなソーシャル メディアのインフルエンサーの写真を使用して、服装を推奨するアプリ

  • 学習内容: 

    • Product Search と Vision API の使い方

    • React と Firebase を使用して ML アプリを設計する方法

Video Thumbnail

-AI 応用エンジニア Dale Markowitz

投稿先