toyoshi

日記です

ゼロから作るDeep Learningがとてもおすすめ

 

ゼロから作るDeep Learning(4) 強化学習編が発売されて店頭に並んでいますね。私も公開レビューに参加させていただいて巻末に名前を載せていただきました。(自慢です)

このシリーズは本当にすごくて、特にシリーズ1冊目を読み終えた時は、一冊の歴史小説を読み終わったような感動があったので改めて紹介させていただきます。

大きく2つ理由があるのですが、感動した1つ目の理由は数学的な試行錯誤が高速道路に乗ったように一気に味わえるということです。例えばなぜ活性化関数に正規分布関数ではなくシグモイド関数をつかうのかというと、誤差逆伝播の時に必要になる微分が簡潔になるからです。答えをしっていれば当たり前ですが、いったいどうやって発見したのだろうと唸ってしまいます。そして勾配降下法のSGD、Momentam、AdaGrad、Adamなどの手法も最小値を求めるだけのアルゴリズムですが数学的な楽しさがあります。

2つ目の理由は原理の部分がとてもシンプルだということです。最後に作るCNNのディープラーニングのネットでは何千というノードが何百万回、何千万回という計算をして学習をするのですが、それらを構成しているのは第二章で実装するパーセプトロンという1957年に考案されたたった数行のアルゴリズムです。

# AND回路をパーセプトロンで実装したもの。
# 重み(w)やバイアス(b)をかえるだけでORやNANDといった振る舞いにもできる
def AND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.7
    tmp = np.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return

さらにCNNの元祖は1989年には考案されていました。パーセプトロンはもちろんニューラルネットやCNNはあったのに、それらを応用したディープラーニングが登場するのは2012年です。それはなぜなのでしょう。

本書ではGPUの発展やデータが大量に手に入るからだと推測しています。優れた研究者はたくさんいたはずです。化学などの研究では精度の高い計測器がこれまでなかったからということがあると思いますが、ディープラーニングは想像力があれば考えられたはずです。しかし実際には「膨大な計算ができる」「大量のデータが存在する」そういった前提がないことから考案されるまでには時間がかかりました。環境が発想を制限していたのかもしれないのは人間の脳の限界をみているようで面白さを感じます。(もちろん当時のリソースをつかってチャレンジした人もいたと思いますが)

ディープラーニングだけでなく、研究者たちの歴史を一気に学べる本書は本当にお得な一冊です。このような内容にまとめられた著者に感謝したいと思います。おすすめです。