ゼロから作るDeep Learning
私の紹介する本はこちら「ゼロから作るDeep Learning」シリーズです。
この本は、G検定・E資格を実施する一般社団法人日本ディープラーニング協会の推薦図書にも選ばれています。
私は、この本を読む前から、深層学習に興味があり、画像認識や時系列予測、時には他の興味がある分野と組み合わせて数値実験、もとい遊んでおり、確率・統計や線形代数をなんとなくの状態でやっていましたが、広く数学を勉強し直そうと思わせてくれた、本です。とはいえ、深層学習のことを軽く知りたい人向けの本ではなく、ガッツリ作りたい人向けの本なので、深層学習に興味を持ってもらい、同じ趣味を持つ同士を増やしたいので、軽く人工知能や機械学習、深層学習について書いていきます。
-----------------------本の紹介はここまで---------------------------
これを見ている皆様は、深層学習(Deep Learning)という言葉を聞いたことはありますでしょうか?
深層学習と検索すると、いろいろわけのわからない説明が出てくると思いますが、一言でいうと「4層以上のニューラルネットワーク」を深層学習と定義しているだけです。
いきなり新しい言葉が出てきました。「ニューラルネットワーク?」「4層?ミルフィーユかな?」なんて思ってしまいそうですが、
ここで、深層学習の立ち位置を見ましょう。上記の図のように、深層学習は人工知能や機械学習の一分野ですが、インターネットやニュースで表現される「人工知能」は、そのほとんどが深層学習です。
人工知能の明確な定義は存在しませんが、あえてそれっぽい事を言うのであれば「生物の様に振る舞うアルゴリズム」だと個人的には思います。
機械学習、深層学習は生物の脳、より詳しく言うと、神経回路網をコンピュータで再現したものになります。
さて、深層学習を知るためには、機械学習がどのように学習するかを知る必要があります。そこで、下記のような分類を考えます。
小学1年生のA君が食べたものと、その結果があります。
※結果は、お母さんに「怒られた」「褒められた」だと思ってください。
この既知のデータから、例えばアイスクリームを食べたらどうなるのかを判定したい場合、ヒトであれば、なんとなく想像はできると思います。(あえて、どっちかは書きませんが…)
なぜ、ヒトは正誤どちらにせよ一定の答えが出せるのかを考えると、ほとんどの方は、今回のデータ「ピーマン、チョコ、ニンジン、ケーキ」を見たことがあり、食べたことがあるため、味も情報として持っており、この情報を頼りに結果を推定しているはずです。
しかし、コンピュータはこの「ピーマン」等の文字列以外の情報は持っていません。そこで、この文字列以外の情報を数値として与える必要があります。
例えば、それぞれの食べ物の100gあたりの成分表を情報として与えるのもいいでしょう。
しかし、今回はデータ数が増えるとイメージしづらいので、「甘さ」と「苦さ」を勝手に10段階で定義してみます。
では、これをグラフにプロットします。
プロットするときに、褒められたマークを×で、怒られたマークを〇で表現します。
本来であれば、データ数はもっと用意すべきですが、このようなグラフができました。
これを見てみると、線を1本引けば2つに分けられそうですね、線を引いてみると
このようになりました。
この線を、識別境界線と呼び、識別境界線より右側にあるか、左側にあるかで判別します。
(実際には、高校数学Bで習ったベクトルを使って判定しますが…)
ここで、神経回路網を模したモデルで表現します。
2つのデータを受け取り、先ほどのグラフのような計算をし、学習します。その後、新たなが入ってきたときに結果がわからないものを推定することができます。
しかし、上記のようなモデルだと対応できない場合もあります。
このように、1本の識別境界線では2つに分類できない場合です。これを、線形分離不可なんて言ったりします。
この線形分離ができないデータをどうにか分類したいので、このようなモデルを考えます。
先ほどの「甘さ、苦さ」を受け取る入力部分と、結果を出す出力部分をそれぞれ、入力層、出力層といい、この2つの層のみで構成されるものを「機械学習」といい、入力層と出力層の間の層を中間層と言います。この中間層があるものを「ニューラルネットワーク」といいます。
「判別機1で右側に来るもの、かつ、判別機2で左側に来るものを、最終判別機で〇とする」のように学習したニューラルネットワークを用いると、
先ほどまで、線形分離できなかったものを分離できるようになりました。
このように、層(判別機)の数を増やすと、複雑なものも学習、推定できるようになります。
そこで、さらに層を増やしたものが、深層学習と呼ばれ、最初に記述しました「4層以上のニューラルネットワーク」となります。
層を増やせば必ず性能が良いニューラルネットワークができるわけではありませんが層を増やすと良くなる傾向はあります、機械学習、ニューラルネットワーク、深層学習について興味を持っていただけたら幸いです。
個人的には、最適化問題や線形代数、画像認識、時系列データ予測等いろいろ書きたいのですが、ガッツリ数学の話になりますので機会があれば...
アイネックス税理士法人 SS
2022/08/17
- 読書発表・本紹介
- スタッフの雑談