【DeepLearning】Excelでわかる深層学習(ディープラーニング)の仕組み
深層学習(ディープラーニング)の根源にはニューラルネットワークという人工のネットワークが存在しています。このニューラルネットワークは豊富なライブラリが用意されていることから『Python』によって実装されることが多いため、深層学習はPythonでしかできないと思っている人も多くいます。
しかし、ニューラルネットワークの中を覗いてみると、いくつかの計算が網羅的に行われているだけということがわかります。言い方を変えれば、この”網羅的な計算”の内容さえ理解できればどのプログラミング言語でもニューラルネットワークを作ることができるということでもあります。
本ページではPythonは一切使わずにExcelのみを使って「ニューラルネットワーク」「ディープラーニング」の仕組みについて解説していきます。
最終的には実際にExcelで「ニューラルネットワーク」を作成してディープラーニングを行います。
知識だけでなく、実際に深層学習を行うことで「ニューラルネットワーク」「ディープラーニング」の仕組みをより理解することができるでしょう。
機械学習の初学者にはかなり難し目の内容ですが、Excelと”学習の根気”さえ持っていれば誰でも理解できる内容になっているので、ぜひ時間をかけてゆっくりと学習して下さい。
本ページがディープラーニングの世界に興味を持つ”きっかけ”となれば幸いです。
本ページではExcelを使って解説を行っていくため、Excelの知識が必要になってきます。
「基礎知識編」ではExcel関数の知識、「実践編」ではExcel VBAの知識が必要になってきます。
基礎知識編でのExcel関数の知識は最悪なくても理解できるようにはなっていますが、
実践編ではExcel VBAでニューラルネットワークを作成するため、VBAの知識は必須です。
特にクラスモジュール、2次元配列が理解できていないと、全く理解できない内容になっています。
ディープラーニング実践編を始める際は、予めある程度のVBA知識は付けておきましょう。
ページ最後では本ページを作る際に参考にした書籍を載せておきます。本ページで端折っているところも詳しく解説されているので、気になった方はぜひチェックしてみて下さい。
基礎知識編
Excel関数で学ぶニューラルネットワーク(順伝播編)
Excel関数で学ぶニューラルネットワーク(逆伝播編)
ディープラーニング実践編
以降では有名な機械学習用のデータセットを使い、実際にディープラーニングを行います。
この項は「Excel VBAでニューラルネットワークを作成して実際にディープラーニングを行うことで、ディープラーニングについての理解を深める」ということを目的としています。
そのため学習の精度にはあまり重きを置かず、できる限りシンプルなニューラルネットワークを作成していきます。(実際にはディープラーニングと言えるほど深い学習は行いませんが、根本的な原理は同じなので本項の内容が理解できればディープラーニングも理解できます)
シンプルなニューラルネットワークということもあり、最終的な結果がうまくいかない可能性も大いにあるということは予め理解しておいてください。
[初級編] Irisの種類 分類問題(Irisデータセット)
Irisデータセットを使ったIris種類の分類問題です。(※Iris=アヤメ)
ガクの長さ(sepal_length)、ガクの幅(sepal_width)
花弁の長さ(Petal_length) 、花弁の幅(petal_width)の4つの値からIrisの種類を判別します。
判別するIrisの種類は『Setosa』『Versicolor』『Virginica』の3種です。
最終的には自分で入力した4つの値から、どの種類のIrisかを判別させます。
[中級編] 手書き数字 分類問題(MNISTデータセット)
MNISTデータセットを使った手書き数字の分類問題です。
MNISTデータセットとは「0〜9」のいずれかの数字が書かれた手書き数字画像のデータセットです。
画像は全部で70000枚分用意されており、この膨大なデータを使ってニューラルネットワークを学習させることで、コンピュータに手書き数字(0~9)を認識させることが可能になります。
最終的には自分の書いた手書き数字(0~9)を判別させます。
[上級編] 犬・猫 分類問題(未定)
「犬と猫」の分類問題です。
MNIST学習では使わなかった、畳み込みニューラルネットワーク(CNN)での学習です。
最終的には入力した画像が「犬」か「猫」かを判別することを目標としています。
コード作成中(公開未定)
参考書籍
基礎知識編では「Excelでわかるディープラーニング超入門」を参考に、
ニューラルネットワーク、ディープラーニングに関する基礎知識を解説していきます。
(基礎知識編は本書だけでなく下記の書籍も合わせて参考にしています)
本書ではVBAは使わずExcelの関数を使ってシート上でニューラルネットワークを再現していく内容が解説されています。この方法ではニューラルネットワーク内の数字がどうなっているのかが常に可視化されるため、ディープラーニングの初学者でも理解しやすいものとなっています。
実践編ではディープラーニング学習の名著
「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」
を参考にしてExcel VBAでニューラルネットワークを構築していきます。
本書は『Python』での実装を想定していますが、処理の流れが細かく解説されているため、内容さえ理解できればその他のプログラミング言語でも再現が可能です。
これからVBAを使ってディープラーニングを学習していく上で様々な計算式が出てきますが、それらは全てこの書籍に載っている内容です。Pythonを使う使わないに限らず、ディープラーニングを学習していこうと考えているのであれば本書だけは持っておきましょう。