2025年1月号特集 数学&図解でディープ・ラーニング
サポート・ページ

★MATLAB関連のサポート・ページはこちら★
読者限定MATLABライセンスの利用方法
MATLAB Online環境で特集のMATLABコードを試す方法

★特集内で紹介したMATLABコードはこちら★
筆者のGitHubリポジトリ
関連データ

★2025年1月号の目次はこちら★
https://interface.cqpub.co.jp/magazine/202501/

 


●ディープ・ラーニングを使いこなすには…学習のからくりを理解するのが近道
最近では,さまざまな開発環境でAI技術が取り入れられるようになりました.特に今注目を浴びているのは,ChatGPTに代表されるLLM(大規模言語モデル)などの生成AI技術です.この生成AI技術には,特に学習モデル構築の工程において,2010年代後半に話題になったディープ・ラーニングの技術が利用されています(図1).

図1 今はやりの生成AI技術はディープ・ラーニング技術に支えられている

 

AIを使った開発で特につまずきやすいのは,学習モデルの構築だと思います.十分な知識がないまま学習モデルを構築しようとすると,うまく構築できるかどうかが運任せになってしまいがちです. 本特集では,ブラックボックスになりがちなディープ・ラーニングの仕組みについて,数学の観点からメカニズムを解説します.また,実際にモデルをフルスクラッチで実装することにより,手を動かしながら理解します.

 

●使いこなしの要は「学習」
▼知識が無いと運任せにならざるを得ない
さまざまな開発の現場では,1 からデータを学習し,学習モデルを構築したり,LLMやAlexNetなどの既存のモデルを一部変更(転移学習)して利用する場合が多くなってきていると思います.
一方,GPUやCUDAの発達に伴い,大規模なモデル構築が容易になっているのも事実です.ニューロン数を増やしたり,多層にすることは容易です.しかし,学習が容易にいくとは限りません.
発見的にニューロン数を増やしたり,層を増やしたりしても学習を収束させるのは運になってしまうことも多々あります.また,運よく学習がうまくいったとしても,他の業務に適用できなかったりということも出てきます(図2).

図2 ディープ・ラーニングのからくりを理解することが使いこなしの近道

 

▼使いこなすなら…学習のからくりを理解するのがお勧め
LLMでもCNNでもバックプロパゲーションで学習しています.バックプロパゲーションは数学的論理に基づいて学習をしていきます.この学習とは1ニューロンの重み付けやバイアスを数式的に更新をしていくことです.
このため,1ニューロンがどのように学習しているか,多段のニューラル・ネットワークになったらどのように学習が進むのかを理解することをお勧めします.これにより,ニューロン数や段数の見極めができれば結果的に最適な学習モデルができるものと考えます.

●特集でやること…層ごとの中身を解き明かしていく
▼畳み込みニューラル・ネットワークの構成
ディープ・ラーニングのアルゴリズムは非常に複雑です.まずは,畳み込みニューラル・ネットワーク(CNN:Convolutional Neural Network)の概観を見てみましょう.


図3 畳み込みニューラル・ネットワーク(AlexNet)の主な層

 

AlexNetの主な層(赤色の枠で示した部分)を図3に抜き出して示します.ディープ・ニューラル・ネットワークは,一般に多数の層(層の深さ)を持つニューラル・ネットワークを指します.RGBカラー画像(227× 227ピクセル)を入力した,AlaxNet畳み込みニューラル・ネットワーク(CNN)は,次の3つの組み合わせで演算されていきます.

・畳み込み層(Convolutional Layers)
・プーリング層(Pooling Layers)
・全結合層(Fully Connected Layers)

ディープ・ネットワークと呼ばれるのは,単に全結合層だけでなく,ネットワーク全体が複数の層で構成されているためです.AlexNetの場合,図3のように最初の畳み込み層から最後の全結合層までが全体として有機的なディープ・ニューラル・ネットワークを構成しています.特に,畳み込み層とプーリング層が特徴抽出(Feature Extraction)を行い,全結合層が最終的な分類を行う役割を担っています.
▼特集記事の構成
特集では図3に示す章立てで解説を進めていきます.全体を通してサンプル・コードを実行しながら体感できます. 本特集は興味のある章から読み始めてもらって構いません.必要に応じて第2章,第3章の数学を学び直せるようになっています.

・第1章 Simulinkを使ったシンプルな1ニューロンの推論と学習を体感し学習の概要を知る
・第2章 ベクトルと行列演算の学びなおしを通して数学のご利益を理解する
・第3章 常微分,偏微分,全微分の学びなおしを通して数学のご利益を理解する
・第4章 全結合モデルのからくりを理解する
・第5章 全結合モデルの学習(バックプロパゲーション)のからくりを理解する
・第6章 MATLABコードで全結合モデルの学習をフルスクラッチで創る
・第7章 既存のネットワークを利用した学習を体感する
・第8章 既存のネットワークの再学習の仕組みを知る
・第9章 畳み込み層のからくりを知る
・第10章 畳み込み層の独自学習を行う

 

●ディープ・ラーニングを解き明かすキー・アイテム「MATLAB」
▼本誌読者限定!6 カ月ライセンス付き
筆者の経験から,数学を使うときはMATLABの数式処理が非常に効果的でした.特に複雑な関数をグラフで解析したり,行列演算を簡易に使えたりすることもMATLABで得られるご利益です.ディープ・ラーニングを使う場合でもMATLABは非常に利便性が高く,Pythonに比べ多くの特徴を持っています.
マスワークス社の協力により,本誌限定のMATLAB無償ライセンスが付属します.読者限定ライセンスの使用方法は,次のページをご覧ください.
読者限定MATLABライセンスの利用方法
本誌で扱った全てのMATLABコードは,筆者のGitHubリポジトリで公開中です.また,こちらよりダウンロードできます.ぜひ本誌を見ながら実際に動かしてみて,数学とともにディープラーニングを体験してみましょう.

 


図4 MATLAB/Simulinkならニューラル・ネットワークも直感的に設計できる

 

▼MATLABを使う理由
・(1) 開発/設計/実験のグローバル・スタンダードだから
・(2) 製品版ならではの品質が確保されている
・(3) 直感的で分かりやすいGUI
図4にニューロンのMATLAB/Simulinkモデルを示します.ニューラル・ネットワークも直感的に設計できることの一例です.なお,今回の特集では,一部の解説で既存のモデルやMATLABのライブラリを使用しますが,基本的にはフルスクラッチでニューラル・ネットワークを実装していきます.