見出し画像

【機械学習を無料で学びたい人必見】GoogleのVertex AIのトレーニング教材が素晴らしかった件

AIリテラシー上げませんか?

この一年の生成AIの進化はめざましく、今となっては懐かしいBardとか初代Llamaがリリースされてまだ一年なんですね!
去年の末にGeminiがリリースされて今年5月にはGPT-4oやGemini Pro 1.5などのマルチモーダルな生成AIモデルがリリースされました。

このようにAIの進化は日進月歩。IT業界にいるいないに関わらず、私たちの生活のありとあらゆるところにAI技術が浸透する日も近いことでしょう。
車や飛行機で遠くに行けるように、AIを使って今までできなかったことが可能になる、届かなかった目標に届くようになる。そう想像するとワクワクしますよね!

AIの分野では毎週のように新しいアップデートがあって、日々できることが増えていっています。インターネットのおかげで、最先端のAI技術が今では世界中の誰もが格安もしくは無料で触れられる!
産業革命から今まででこんなことってあったでしょうか。新しい技術は今までは限られた人達(多くの場合富裕層や学者)が最初にアクセスして、それから市場に広まっていくという流れでしたが、生成AIに関してはWebでリリースされるので世界中の人がすぐにどこからでもアクセス可能で、必要なのは「好奇心」オンリーです。

リテラシー

知識や情報を収集し、有効活用する能力

https://www.all-different.co.jp/column_report/column/literacy/hrd_column_192.html


まさに今「AIリテラシー」を上げてどんどん有効活用する人としない人では大きな差ができていくんだと思います。重要なのは、

  • まずはどんなことができるのか、できないのか、ChatGPTなど自分で触ってみる。
    (これについては、私の記事を読んでくださる稀有な方々はすでに実施されていることと思います。)

  • 次に、どんな仕組みなのか理解しようとしてみる

ってことだと思います。これによって、新しいAIモデルのニュースを聞いて、どんな影響がありそうかなどを想像できると楽しいし色々な側面で役に立つんではないかと思います。

「どんな仕組みなのか理解する」方法として、本を読んだりわかりやすく解説してくれているYoutube動画を見たりってことが多いかと思います。そういう方法でもなんとなくわかった気がするんですが、実際に手を動かして作ってみることをお勧めします。なぜなら実際に作ることで、格段に深く理解できるからです。

そこで今回は『AIリテラシー』を上げる一歩として実際に機械学習モデルを作ってみましょう!
実は私も機械学習のモデルを作るのは今回人生初でしたが、チュートリアルに沿ってやってみたら意外と簡単だったというのと、一連の学習、評価、予測までのプロセスがわかって非常に「Aha!」だったので、シェアさせていただきます!

ディープラーニングを理解するにはまず機械学習を理解しよう

端的に言ってしまうと、ディープラーニングは機械学習の一部で、機械学習は「ある特定のターゲットの値を予測するための数式モデル」です。ここで「学習」というのは、数式モデル(y = Ax + Bのようなシンプルな式をとりあえずイメージしてください)の定数AとBの値を既存のデータから求めることです。

たとえば、台風が起こるたびにある一定の数の電線が切れて停電が起こりますが、予め何本の電線が切れるか予測できたら復旧作業が効果的になりますよね。それを予測するには、どんな情報が必要でしょうか。

まず、台風の風速などの気象情報、電線の場所やその付近の地形情報、他にも電線が切れる事象に影響を与えるファクターを洗い出します。それができたら、どういう条件の時に何本の電線が切れたのかという過去のデータを収集します。

多数の「影響を与えるファクターセット」(特徴量と呼ばれる)と「電線が切れた本数」(ターゲット)のデータを数式モデル「ターゲット = f(特徴量)」に当てはめます。ここで「f」はそれぞれの特徴量に掛け合わせる「重み」によって定義される関数です。

モデル学習では、この「重み」(上のy=Ax+BでいうところのAとB)を求めます。具体的な方法としては、重みの値を仮定して上の式に当てはめます。そうすると、上の式は「ターゲット = f(特徴量)+Δ」となります。Δは既存データのターゲットの値とモデル式による予測値の乖離(損失関数と呼ばれる)です。このΔ(乖離)を最小化する重み定数の値を求めることがモデル学習の目的です。最小化するプロセスは反復的に行われるため、コンピューターパワーが必要なんですね。

ここまで説明したのは機械学習で一番シンプルな「回帰モデル」というアルゴリズムです。(ここでの回帰というのは、入力値から出力値を求める、ということです。対して、「分類モデル」というのは、イエスかノーか、のような選択肢から予測するモデルです)
一番シンプルではありますが、まとめると大事なポイントは、

  1. 「機械学習モデル」とは何かを予測するための数式モデル

  2. 「学習」とは既存のデータを用いてモデル式を求めること

  3. そのプロセスでは、重みの値を乖離(損失関数)が最小になるように反復的に求める

ということです。
では実際に機械学習モデルを作っちゃいましょう!

Vertex AIの無料トライアル

Google CloudのVertex AIをご存知ですか?

Geminiなど生成AIモデルを使ったアプリ開発ができるだけでなく、データ処理、評価、学習から機械学習モデルのデプロイまで、エンドツーエンドでできる包括的なプラットフォームなのです!(デプロイすることで、たとえばAPIで自分が作ったモデルにアクセスできるようになります)

正直私も機能が多すぎてちょっと圧倒されてしまい、長らく敬遠していたところはあるんです。でも興味はあったので、まずはドキュメンテーションをパラパラと見ていたら非常にわかりやすく(しかも日本語のドキュメンテーションが用意されてる!)初心者でも全然イケるってことに気づきました!

開発者じゃなくても、チュートリアルを読んでやってみると格段と機械学習への理解が深まります!

https://cloud.google.com/vertex-ai?hl=ja

しかも!!USD$300のクレジットがもらえます!
$300ですよ?日本円で4万5千円超!!Googleさんなんて太っ腹なんでしょう!

これは使わない手はないですよね?
$300クレジット付きの無料トライアルに参加するには、このページから「Vertex AI無料トライアル」をクリックして画面の指示に従って進むとクレジットが付与されます。

で、どこから始めるかなんですが、私のお勧めはまず「初心者向けガイド」を読んで全体的なフローを理解してから「チュートリアル」をやってみるのが良いと思います。

AutoML vs カスタムモデル

Vertex AIの機械学習モデルには「AutoML」と「カスタムモデル」があります。

AutoML:

  • データから自動的に最適なモデルを構築してくれる

  • モデル構築のための事前知識は不要

  • ユーザーはデータを用意するだけで済む

  • カスタマイズ性は低い

カスタムモデル:

  • ユーザーが独自にモデルアーキテクチャを設計し、コードを記述する

  • 機械学習の専門知識が必要

  • 高度なカスタマイズが可能

  • 柔軟性が高い

つまり、AutoMLは手軽にモデルを構築できる一方で、カスタムモデルは専門性は高いが自由度が大きいという違いがあります。

というわけなので、まずはAutoMLから試してみるのが良さそうです。

チュートリアル

以下のデータ形式を使ったチュートリアルが用意されています。

  • 画像

  • 表形式

  • テキストデータ

  • 動画

このチュートリアルの素敵なところは、必要なデータが全て既に用意されているので、本来最も時間がかかると言われているデータ収集・前処理ステップをスキップして、機械学習のコアな部分(学習・評価・予測)だけを体験できるところです。

このチュートリアルで学んだ知識を活かして、この論文のデータを使って二つのモデルを構築してみました。一つ目(青)が特徴量を最も影響が支配的な二つに絞ったもの、二つ目(赤)が全ての特徴量を使って学習したものです。MAE(平均絶対誤差)などのエラーの値にほとんど違いがないことがわかります。

ちなみに、私は表形式データのトレーニングを試したのですが、一回のトレーニングに時間は1時間以上で料金はUSD$32かかりました。(もちろんクレジットでカバーされます!)
料金の詳細はこちらのページに記載されています。

おわりに

ここまで読んでいただきありがとうございます!
AIの進化って本当にすごいですよね。今回の記事を通して、機械学習モデルを作ってみたい、作ってみようと思っていただけたら嬉しいです!
一緒にAIリテラシーを高めてAIの進化にワクワクしましょう!

この記事が気に入ったらサポートをしてみませんか?