今さら聞けない ディープラーニング入門


学習用Pythonライブラリ Kerasのプログラミング

ディープラーニング入門するならKeras

図1 シンプルで直感的なAPIを備えるPythonライブラリ"Kerasは"を利用することで,ディープラーニングの学習をスムーズに進められる.数行で複雑なネットワークを構築できる.画像クリックで動画を見る.または記事を読む.[提供・著]井上 祐寛
詳細[VOD/KIT] ラズベリー・パイで学ぶエッジAIプログラミング入門

ディープラーニングとニューラル・ネットワーク

ディープラーニングは,人工知能(AI)技術の中核として,多くの分野で活用されています.その基礎となるのがニューラル・ネットワークであり,これを用いてコンピュータがデータから自動的にパターンを学習します.

ニューラル・ネットワークの基本構造

今回実装するニューラル・ネットワークは,入力$x$を倍にして出力$y$を得る単純なモデルです.構成は以下のとおりです.

  1. 入力層(1ノード)
  2. 全結合層(1ノード)

このモデルでは,入力値に重み$w$を掛け,バイアス$b$を加算した結果を活性化関数$f$に通して出力$y$を得ます.

\[ y = f(w \cdot x + b) \]

学習データとして,以下のような入力と出力のペアを用います.

\[ \text{入力:} [1, 2, 3], \quad \text{出力:} [2, 4, 6] \]

モデルの実装手順

Kerasでは,モデルを簡潔に記述できます.今回は,以下の手順で進めます.

  1. Sequentialモデルの作成
    Sequentialモデルは,層を順次追加してネットワークを構築します
  2. 層の追加
    全結合層(Dense層)を追加します.ここでは,出力ノード数を1,入力の形状を1次元に設定します
  3. コンパイル
    損失関数として平均2乗誤差(Mean Squared Error)を使用し,最適化関数には確率的勾配降下法(SGD)を指定します
  4. 学習の実行
    データを用いてモデルを学習し,最適な$w$と$b$を求めます

モデルの応用と評価

学習済みモデルに未知の入力値を与え,正しい出力が得られるかを確認します.入力値$7$に対し,学習済みモデルが出力した値が約14であれば,モデルが「入力を倍にする」ルールを正しく学習したと判断できます.

Kerasとニューラルネットの魅力

1.Kerasの特徴

Kerasは,シンプルかつ直感的なAPIを提供するPythonライブラリであり,ディープラーニングの学習をスムーズに進められます.以下の点が特徴的です.

  1. 簡潔なコード記述
    数行のコードで複雑なネットワークを構築可能
  2. 柔軟性
    バックエンドエンジン(TensorFlow,Theanoなど)を選択可能
  3. 高速なプロトタイピング
    初心者でも容易にモデルを試行錯誤できます

2.損失関数と最適化関数の役割

損失関数は,モデルの予測と正解との差を測定します.今回使用した平均2乗誤差は,回帰タスクでよく用いられる指標です.損失を最小化するために,最適化関数が重み$w$とバイアス$b$を調整します. 特にSGDは,簡単かつ効率的な方法であり,学習の基本を理解するのに適しています.

3.実世界での応用例

この基礎的な「入力を倍にする」ネットワークは単純ですが,基本を押さえることで,画像認識や音声認識など,より高度なモデルに応用できます.〈著:ZEPマガジン〉

動画を見る,または記事を読む

著者紹介

  • 株式会社クレスコ入社後,銀行向けシステムなど数多の開発にリード・エンジニアとして従事.後に自社ソリューションとなる統合認証システムの基礎を独力で開発するなど,アイデアと技術でクレスコを牽引する.技術研究所での機械学習研究を経て,人工知能を強みとする部門に異動.現在はテクニカルエバンジェリストとして企業が持つ業務課題へのAI適用に関するコンサルティング,機械学習に関する技術支援を行う一方,自ら研究テーマを持ち共同研究,実験システムの構築も担当.「SoftwareDesign」「やってみよう!機械学習」(技術評論社),「日経ソフトウェア」「AIプログラマになれる本」(日経BP)への記事寄稿,会津大学,はこだて未来大学,琉球大学,早稲田大学のほかWatson SummitやMicrosoftでの講演等,社外でも精力的に活動中

著書

  1. ラズパイ+USB SDRで作るFlightradar24 Businessアカウント・フィーダ,ZEPエンジニアリング株式会社.
  2. [VOD/KIT]ラズベリー・パイで学ぶエッジAIプログラミング入門,ZEPエンジニアリング株式会社.
  3. [VOD/KIT]世界の航空機を同時追跡!Flightradar24 ラズパイ・キット,ZEPエンジニアリング株式会社.
  4. [VOD/KIT]人工知能カメラM5StickVで作って学ぶ画像解析AI開発入門,ZEPエンジニアリング株式会社.
  5. いろんなことを試して学ぶ! Pythonプログラミング,2021年,日経BP.
  6. エッジAIプログラミング M5StickV 活用編,日経ソフトウェア2020年11月号,日経BP.
  7. エッジAIプログラミング M5StickV 準備編,日経ソフトウェア2020年7月号,日経BP.
  8. Kaggleに参戦しよう(連載),日経ソフトウェア2020年1月号,日経BP.
  9. Kaggleに参戦しよう(連載),日経ソフトウェア2019年9月号,日経BP.
  10. Kaggleに参戦しよう(連載),日経ソフトウェア2019年7月号,日経BP.
  11. AIプログラマになれる本,2019年,日経BP.
  12. やってみよう! 機械学習 第2章 機械学習の始め方,2019年,技術評論社.
  13. 人工知能で画像生成 応用編,日経ソフトウェア2019年1月号,日経BP.
  14. 人工知能で画像生成 基本編,日経ソフトウェア2018年11月号,日経BP.
  15. 自分で構築するか,APIで機能を使うか 機械学習の始め方,Software Design2018年4月号,技術評論社.

参考文献

  1. [VOD/Pi3A KIT]ラズパイ・キットで学ぶLinux I/Oボードの作り方・探し方・動かし方,ZEPエンジニアリング株式会社.
  2. [VOD/Pi KIT]ラズベリー・パイで学ぶLinux&Pythonプログラミング超入門,ZEPエンジニアリング株式会社.
  3. [VOD/PiZero KIT]Python×ラズパイで初めての量子コンピュータ,ZEPエンジニアリング株式会社.
  4. [VOD/Pi400 KIT]SLAMロボット&ラズパイ付き!ROSプログラミング超入門,ZEPエンジニアリング株式会社.
  5. [VOD/Pi KIT]ラズパイ×Pythonで動かして学ぶモータ制御入門,ZEPエンジニアリング株式会社.