近年、AIの普及が急速に進み、ビジネスでもその活用がますます求められています。GMOインターネットグループでは、全パートナー(社員)がAIを活用して「AIで未来を創るNo.1企業グループ」を目指しています。その一環として、2023年より全パートナー(社員)が対象のAI専門家による「AIセミナー」を定期開催してきました。
2024年1月31日(水)には、GMOインターネットグループ デベロッパーエキスパート 成瀬 允宣がAIセミナーに登壇。STEAM教材として注目される「レゴ® エデュケーション SPIKE™ プライム」で作られた車型ロボットで深層学習による画像認識自動走行を目指すセミナーを開催しました。今回は、その模様をお届けします。
目次
「AIで未来を創るNo.1企業グループ」実現を目指す
GMOインターネットグループでは「AIで未来を創るNo.1企業グループへ」を掲げ、
- ① 時間とコストの節約
- ② 既存サービスの質向上
- ③ AI産業への新サービス提供
を軸に、グループ全パートナーを挙げてAIの活用、AI関連サービスの提供を進めています。
これらを達成するには、全パートナーがAIを使いこなすことが必須です。そのために、GMO AI&Web3株式会社の顧問に就任した木内翔大氏や茶圓将裕氏をはじめ、外部講師を招き「AIセミナー」を月に2回開催して、AIに関する最新動向や最新ツールの理解を深めています。
【GMOインターネットグループの「AIで未来を創るNo.1企業グループ」実現への取り組みの詳細はコチラ https://www.gmo.jp/ai-history/ 】
AIへの理解を深めよう: レゴ×深層学習による画像認識自動走行
2024年1月31日(水)には、GMOインターネットグループ デベロッパーエキスパート 成瀬 允宣が「AIセミナー」に登壇しました。「AIへの理解を深めよう: レゴ×深層学習による画像認識自動走行」と題したセミナーは「レゴ®エデュケーション SPIKE™ プライム」で深層学習を活用して自動走行に挑戦するものでした。
なぜ「レゴ®エデュケーション SPIKE™ プライム」に着目したのでしょうか?
成瀬はプログラマーとして従事する傍ら、GMOインターネットグループのデベロッパーエキスパートとして、テックカンファレンスへの登壇や、渋谷に拠点を置く企業5社と渋谷区教育委員会が連携した「Kids VALLEY 未来の学びプロジェクト」にて渋谷区の小学生に授業支援を行うなどプログラミング学習を普及する活動を行っています。
2022年には「Kids VALLEY 未来の学びプロジェクト」にて「問題解決型学習(PBL:Project Based Learning)」(PBL学習)支援として、教育版マインクラフトを活用した「PBL×プログラミング学習」という新たな試みを、渋谷区立笹塚小学校で実施してきました。
記事|GMOインターネットグループによるプログラムを組み込んだ、新たなPBL学習の取り組み ~未来の笹塚小学校をつくろう~
そんな成瀬が、小学生のSTEAM教育を高める教材として注目しているのが「レゴ®エデュケーション SPIKE™ プライム」だといいます。
STEAM教育とは
Science(科学)、Technology(技術)、Engineering(工学・ものづくり)、Art(芸術・リベラルアーツ)、Mathematics(数学)の5つの単語の頭文字を組み合わせたSTEAM、それぞれの分野横断的に取り組む教育概念です。https://coeteco.jp/articles/10858
レゴ®エデュケーション SPIKE™ プライムについて
小学校高学年から中高生向けのSTEAM教材として、注目されています。
https://education.lego.com/ja-jp/products/-spike-/45678/
今回のセミナーでは、深層学習を理解するための教材として株式会社アフレルから提供されている「ロボットではじめる深層学習 TensorFlow × SPIKE™ プライム 自動走行セット」を使用して、自動走行に関するプロセスを、全パートナー(社員)に解説しました。
GMOインターネットグループ本社シナジーカフェ「GMO Yours」に走行コースを設けて、「SPIKE™ プライム」でつくった車型ロボットをマイクロコンピュータ「Raspberry Pi(ラズベリーパイ)」と組み合わせて自動走行を目指します。参加者に向けて、その模様をライブ配信して、リアル会場とオンラインのハイブリッドで開催し、ライブ感のあるセミナーとなりました。
教材「ロボットではじめる深層学習 TensorFlow × SPIKE™ プライム 自動走行セット」について
「レゴ® エデュケーション SPIKE™ プライム」に「テキスト教材」「SPIKEプライム自動走行コース」「楕円コース」「障害物ブロック」「Raspberry Pi」などをセットにした学習教材です。株式会社アフレルが販売しており、深層学習を活用した自動走行のプロセスを体系的に学ぶことができます。
株式会社アフレル
明るい未来社会づくりに向けて、企業から、大学・高専・高校・自治体まで幅広い層に向け教育支援サービスをご提供します。最新のテクノロジー、特にロボット技術を駆使して、ソフトウェア開発過程や成果の「見える化」、そして教育効果の「見える化」をロボットの動きで実現し、知的な感動を生む新しい教育サービス・教材の企画・開発・販売により人材育成の現場のみなさまを支援します。
公式サイト:https://afrel.co.jp/
TensorFlow(テンソルフロー)とは
Googleが開発した機械学習のオープンソースライブラリ。画像や音声認識、翻訳などの自然言語処理など広く活用されています。https://www.tensorflow.org/?hl=ja
Raspberry Pi(ラズベリーパイ)とは
手軽にIoTが始められるマイクロコンピュータ。コンピュータの教育を促進するために生み出されたと言われています。https://coeteco.jp/articles/10044
はじめに:セミナーの流れについて
成瀬:本日は「深層学習による自動走行」と「深層強化学習による自動走行」についてデモンストレーションも交えて学んでいこうと思います。はじめに全体の流れを説明します。車型ロボットは、カメラとRaspberry Piが搭載されています。Raspberry Piに画像収集用プログラムを送り、走行中の車道をカメラで撮影して、その画像を学習データとして扱います。
【1】「深層学習による自動走行」では
収集したデータを使って学習を行い、そのモデルを使って自動走行を目指します。学習はブラウザ上で Python を記述、実行できる「Google Colaboratory」を用いて進めます。
【2】「深層強化学習による自動走行」では
エージェントと呼ばれるプログラムを動かして報酬を与え、次に取るべき行動は何か?をコンピュータに自動で選択させます。今回は、道路に引かれた中央線に近づけば近づくほど、高い報酬を得られる仕組みです。コンピュータが報酬を最大化させるモデルを独自に構築するのを目指します。
データ収集からスタート
成瀬:さっそくデータ収集から始めていきましょう。実際にロボットを起動させコースを走行させます。事前につくったプログラムでステアリング(乗り物の進行方向の向き)を変えて道路を走行していきます。走行中にカメラで道路を撮影して、その画像がデータとして収集されていきます。方角を変えて反対回りも撮影して、データを収集します。
成瀬:約5分で約1500枚の画像が撮影できました。データには撮影時のステアリング角度の数値も蓄積されています。これらのデータを使って訓練を実行します。
「教師あり学習」でモデル作成
成瀬:深層学習(ディープラーニング)は機械学習の1つです。人間によって記述されたルールに従って動く「ルールベースプログラミング」と異なり、機械学習とは帰納プログラミングによりコンピュータにプログラムを作成させる手法で、大きく分けて「教師あり学習」と「教師なし学習」の二つのアプローチがあります。
「教師あり学習」では、正解となる答えが含まれたデータを使い、最適なモデルを導き出す手法です。例えば犬のイラストに「犬」、猫のイラストに「猫」と正解ラベルをセットに与えてモデルを構築することで、犬や猫のイラストデータを与えてどちらに分類されるかといったタスクに使用できます。一方、「教師なし学習」ではデータに正解ラベルを与えない状態で、データのパターンや構造を自動的に抽出する手法です。
今回は具体的にどれくらいステアリングを回すかという判断を「教師あり学習」で行います。さらに「深層強化学習」で報酬に基づいて行動を最適化し、自動走行させることも行っていきます。
成瀬:まずは画像処理モデルをつくることから始めます。画像を分割してみると、白い白線と黒い道路といった色情報があると思います。その色情報を0=白、1=黒というように数値に変換してデータに持たせます。こうして識別されたデータを自動走行用画像処理モデルに渡します。そのモデルがデータからパーセントの傾きや適切なステアリング値を示す関数を作成します。この関数を用いれば、新しいデータに対しても最適なステアリング値を得ることが出来ます。
成瀬:ここで重要なのは、得られた関数を正確に選択することです。そこでモデルの性能を評価する目的関数を使用して、最適なモデルを選択します。目的関数にはさまざまな計算法がありますが、今回は平均二乗誤差を目的関数としています。また最適なモデルを得るために、パラメータを調整する必要があります。この調整には、目的関数の微分により傾きを計算して最適な値を探る「勾配法」を使います。
平均二乗誤差
各データに対して「予測値と正解値の差(=誤差)」の二乗値を計算し、その総和をデータ数で割った値(=平均値)。今回は平均二乗誤差を目的関数に設定しました。
自動走行で活用される「ニューラルネットワーク」とは?
成瀬:深層学習による自動走行は「ニューラルネットワーク」という手法で行います。ニューラルネットワークは、人間の脳の構造を模した機械学習モデルです。ニューロン同士の結合を計算グラフで表現し、活性化関数を用いて非線形な変換を行うことができます。
成瀬:活性化関数は、線形モデルだけでは表現できない複雑な関係性を捉えるために使用されます。非線形な法則性を表現できるため、複雑なパターンを扱えます。ニューラルネットワークは、目的関数を最小化するように重みとバイアスを調整しており、誤差逆伝播法やミニバッチ学習などの手法を使い、効率的に学習を進めます。
成瀬:ニューラルネットワークの学習では、人が設定する値であるハイパーパラメータの調整も重要です。最適なハイパーパラメータを見つけるのには試行錯誤が必要ですが、調整することによりモデルの性能を改善できる可能性があります。
ハイパーパラメータ
ミニバッチサイズ、最大エポック数、学習率、ネットワークの層の深さ、ネットワークの各層のノード数などの設定
成瀬:画像データに特化したニューラルネットワークとして「畳み込みニューラルネットワーク(CNN)」があります。CNNは、画像データの特徴を抽出する手法です。画像の特徴は、例えば、物体の移動や位置などですが、通常のニューラルネットワークではこれらの特徴を捉えるのが難しくなります。
成瀬:しかしCNNを活用することで、画像にフィルターを適用して特徴を抽出します。このフィルターは、たとえば、エッジやパターンなどの特定の特徴を検出する役割を果たします。畳み込み操作によって、画像の特徴が際立ちます。この畳み込み層を重ねていくことで、より画像の特徴が際立ち、高度な特徴量が抽出されます。こうして得られた特徴が、ニューラルネットワークの出力層に結合されて、最終的な出力を生成します。このようにCNNは画像解析やパターン認識などのタスクで広く使用されています。
成瀬:こうしたモデルで学習を行い、ロス値をグラフにしたところ、トレーニングデータ(青)と検証データ(オレンジ)の間に大きな差があることがわかりました。トレーニングデータ(訓練データ)ではロスが低いのに対し、検証データではロスが増加しています。
これはモデルが訓練データに過度に適合し、新しいデータに対応できなくなる「過学習」と呼ばれる状態に陥っていることを示しています。過学習を解決するために、ドロップアウトやアーリーストッピングといった手法で改善を図りましょう。
成瀬:またニューラルネットワークを活用することで局所最適解に陥る「勾配降下法の問題」もあります。改善には、勾配に沿って一度にどれだけ降りていくかを決めるハイパーパラメータの「学習率」を調整したり、画像データを増やすことなどが有効です。データを増やす場合、撮影した画像を反転させてデータを増やすといった方法も活用できます。こうしてモデルの汎化性能を向上させていきます。
深層強化学習(DQN(Deep Q-Network))とは?
深層学習による自動走行のプロセスを説明した後、「深層強化学習による自動走行」についてもシュミレーターを用いて解説しました。
成瀬:「深層強化学習」についても説明します。深層強化学習はエージェントによる学習です。深層強化学習とはディープニューラルネットワークの考え方を含めた強化学習です。エージェントに報酬を与えて、エージェントが行動を選択します。試行錯誤を繰り替えして報酬を最大化する行動を学習します。具体的にはディープニューラルネットワーク(DNN)とQ学習を組み合わせたDQN(Deep Q-Network)で、これを深層強化学習といいます。今回は、線の重心からどれだけ離れているかを報酬定義としています。
セミナーの中では、深層強化学習に理解を深めるため、シュミレーターで学習したモデルを走らせてみました。そうするとコンピュータが報酬を最大化させるかのように、独自に自動的に黒線に沿って走っている様子が伺えました。
自動走行できるか?「SPIKE™ プライム」で実践!
それでは、学習したモデルで、どのように走行するのか?セミナーでは実際に自動走行にチャレンジしました。
成瀬:こうして深層学習で学習させたモデルを使い、「SPIKE™ プライム」の車型ロボットを走行させてみましょう。一部で上手く曲がれない部分もありましたが、最初の画像収集時のプログラムと違い、カーブを曲がる動作が滑らかになりました。
成瀬:今回、この実践に至るまでに難しい話が続いたと思いますが、それは私自身も同じです。学習を進めるなかで、何をすべきか全くわからないことがありました。
そこでChatGPTに何でも相談してみたところ、適切なアドバイスをもらえました。皆さんも、今後、深層学習を活用する上で、つまづきポイントがあるかもしれません。その際はChatGPTに頼ってみるのは有益だと思います。
まとめとして、深層学習では帰納プログラミングによりルールベースプログラミングでは難しい推論を実現します。ロボットを使用した実践では一部で上手くいかなかった所もありました。今回紹介したものは、あくまで訓練に基づくものなので、不確実性が介在することも分かったかと思います。
親しみやすいテーマで、AIの理解が深まった
実践も交えた本セミナー。参加したパートナー(社員)で、普段、開発に携わっているGMOインターネットグループのエンジニアは、どのように感じたのでしょうか?
アプリケーションエンジニア 舟木さん・高島さんに、話を聞きました。
「AIセミナーと聞くと難解な数式を想像しがちですが、「車輪付きロボットをAIで自動走行させる」というテーマで親しみやすかったです。走行させたのは短いコースでしたが、自動走行させるために約2,800枚の画像を学習させており、AIには高性能なGPUやメモリが重要であることがよくわかりました。
セミナーではルールベースプログラミングによるロボット制御と、機械学習を活用した帰納プログラミングによる制御の比較も行われ、従来のコンピュータとAIの違いを明確に示すわかりやすい説明と感じました。またAI研究の進展により学習プロセスがより効率的になっていることも理解できました。引き続きAIの進化に注目し、活用していきたいと思います」(舟木さん)
「Webエンジニアとして、日々の業務のあらゆる場面で生成AIを利用していますが、AIそのものの仕組みに対する理解が今まで曖昧でした。GMOインターネットグループに入社後、AIセミナーを受講していく中で、AIに対する理解が深まり、関心が高まっています。
今回のセミナーもその一助になりました。まずロボットによる実演から入り、その後に理論の説明を行い、最後に講義の内容を踏まえて再度実演というセミナーの流れだったため、最後まで飽きることなく学ぶことができました。
特に強化学習の仕組みの説明や実演の部分が、AIの将来に対する期待が膨らむという点で、最も興味深かったです。Webエンジニアの界隈でも、「生成AIを正しく使いこなして成果を出すエンジニア」への需要が高まっていくことは確実な状況であると感じます。AIについて深く学ぶことができる社内の環境を存分に活用し、引き続きAIへの知見を高めていきたいです」(高島さん)
今回のセミナーでは、深層学習や深層強化学習の応用イメージから今後の自動運転はもちろん、AIの大きな可能性も感じることができる機会となりました。
GMOインターネットグループでは、引き続き「AIセミナー」を開催して、「AIで未来を創るNo.1企業グループ」を目指しています。
「GMO Developers」でも、AIへの理解を高められるよう、AIに関するトピックスや技術記事をお届けして参りますので、是非ご期待ください。
ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
-
技術情報(446)
-
イベント(161)
-
カルチャー(36)
-
デザイン(17)
TAG
- 5G
- Adam byGMO
- AI
- AWX
- BIT VALLEY
- blockchain
- ChatGPT
- cloudflare
- cloudnative
- CloudStack
- CM
- CNDO
- CNDT
- CODEGYM Academy
- ConoHa
- CS
- CSS
- CTF
- DC
- Designship
- Desiner
- DeveloperExpert
- DevSecOpsThon
- DNS
- Docker
- DTF
- GitLab
- GMO Developers Day
- GMO Developers Night
- GMO GPUクラウド
- GMO Hacking Night
- GMO kitaQ
- GMO SONIC
- GMOアドパートナーズ
- GMOアドマーケティング
- GMOイエラエ
- GMOグローバルサイン
- GMOソリューションパートナー
- GMOデジキッズ
- GMOブランドセキュリティ
- GMOペイメントゲートウェイ
- GMOペパボ
- GMOリサーチ
- Go
- GTB
- Hardning
- Harvester
- HCI
- iOS
- IoT
- ISUCON
- JapanDrone
- Java
- JJUG
- K8s
- Kaigi on Rails
- Kids VALLEY
- LLM
- MetaMask
- MySQL
- NFT
- NVIDIA
- OpenStack
- Perl
- perplexity
- PHP
- PHPcon
- PHPerKaigi
- QUIC
- Rancher
- RPA
- Ruby
- Selenium
- Spectrum Tokyo Meetup
- splunk
- SRE
- SSL
- Terraform
- TLS
- TypeScript
- UI/UX
- VLAN
- VS Code
- アドベントカレンダー
- インターンシップ
- オブジェクト指向
- オンボーディング
- お名前.com
- カルチャー
- コンテナ
- スクラム
- スペシャリスト
- セキュリティ
- ソフトウェアテスト
- チームビルディング
- ドローン
- ネットワーク
- プログラミング教育
- ブロックチェーン
- マルチプレイ
- ミドルウェア
- モバイル
- ゆめみらいワーク
- リモートワーク
- レンタルサーバー
- 京大ミートアップ
- 協賛レポート
- 基礎
- 多拠点開発
- 大学授業
- 宮崎オフィス
- 応用
- 技育プロジェクト
- 新卒
- 暗号
- 機械学習
- 決済
PICKUP