}$は問題なく偏微分できそうですね。}$の関数になっているので、これも問題なく偏微分できます。これで、出力層から後ろに遡って全て偏微分できる所までたどり着きました。これがバックプロパゲーションです。}$の項は具体的には以下のような偏微分の数珠つなぎを計算すれば良いことになります。}$$この考え方は、どんなに層が深くなっても適用できます。Networks社のChainnerが代表的です)。層の数と各階層を構成するニューロンの個数を増やすことによって入出力関係の表現能力を向上させるという深層ニューラルネットワークのアイデアは非常に強力で、画像認識や音声認識など産業における応用も非常に多いと聞きます。この深層ニューラルネットワークが大規模になるにつれてバックプロパゲーションを用いた学習は上手くいかなくなるということが知られています。その理由として、まず学習すべき重みが非常に多くなるため、最適な値を見つけることが難しくなることです(初期値などに依存する「局所解」と呼ばれる、最適とは言えない解しか得られないことが多々あります)。出力から入力へ向けて誤差を伝播する過程で勾配の値(偏微分の値)が0になってしまい、重みを更新できなくなるという致命的な問題が生じることもあります(これを勾配消失問題といいます)。これは連鎖律が勾配の積となっているため、1以下の値を掛け算していくと必然的に値が小さくなることに起因しています。アルゴリズムの性質上、これは仕方がなさそうですね。このような問題に対応するため、活性化関数や学習手法、もしくはニューラルネットワークの構造そのものを変更したりするなど、様々な工夫が提案されています。CNN)は、誤差が消失しないようにニューラルネットワークの構造を工夫した代表例です。おわりに今回まで、微分という勾配降下法のコアを担う数学的基盤を学び、そして線形代数という機械学習のアルゴリズムを記述するうえで欠かせないツールを学びました。偏微分における「連鎖律の原理」を学ぶことで、重み更新の具体的な計算手法を提供するバックプロパゲーションと呼ばれるアルゴリズムを解説しました。これで深層ニューラルネットワークの重要なところは完全に理解できたといっても過言ではありません!次回以降は、機械学習における線形代数の役割を少し深く覗いてみましょう。機械学習において線形代数は「表記」として非常に重要な役割を担いますが、実に様々な所で使われているのが分かるかと思います。大学1年生の教養数学として採用されている線形代数ですが、「これって何に役立つのだろう」と思われた方も多いはず。線形代数の魅了が伝われば幸いです。数理モデリングの手法を用いた脳神経科学の研究に携わる。大手インターネット企業でマルチビッグデータシステムの開発・運用業務に従事した後、個人事業主として独立。現在SkillUpAI講師と並行し、MoneyForwardLab特別研究員として金融系データの解析業務を行う。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。