AIスクール(*1)が終わるとき、
担当講師が、
自然言語処理を勉強したい私に、
RNNからTransformerまでを理解するにはこちらの書籍が有名です。これ一冊を通すことにより、文章や時系列データに関して基礎的な知識を網羅できます。
といって、
巣籠 悠輔 著
「詳解ディープラーニング 第2版 ~TensorFlow/Keras・PyTorchによる時系列データ処理~ 」
を勧めてくれた。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/09/28ADF9AB-554C-49DD-9A9F-92E159C0F6DE.jpeg?resize=397%2C500&ssl=1)
入門書といえど、数学からも逃げていない。
卒業してからだいぶ日は経ったが、
もう一度この本で勉強しようと思い、
「3章 ニューラルネットワーク」
を読み始めた。
そうしたら、
いきなり「単純パーセプトロン」でつまづいた。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/09/CB7C7F11-E461-4761-901C-CBB64CB26E5E.jpeg?resize=500%2C285&ssl=1)
ディープラーニングの本当の入口。
単純パーセプトロンは、
ニューラルネットワーク、さらに、
ディープニューラルネットワークにつながる基本中の基本だ。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2019/01/necchusyou_face_boy3.png?w=1256)
これがわからないなんて!
すっかりPythonやNumPyのコードを忘れていて、
実装プログラムが読み解けないのだ。
実装のポイントは2つあって、
① データの準備 → ② モデルの宣言 → ③ モデルの学習 → ④ モデルの評価
なのだが、
そのクラスのコードが読めなかったのだ。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/09/スクリーンショット-2020-09-18-22.04.19.png?resize=450%2C474&ssl=1)
Pythonでは、1つ目に必須な引数、selfを使うんだった。
クラスは、オブジェクト指向プログラミングで出てくる概念で、
国家試験「ITパスポート試験」にも出てくる、
これまた基本中の基本概念。
知らないでは済まない知識だ。
さらに、
もうひとつ、つまづいた。
データを自分で作るときは、
乱数を使う。
NumPyを使い、
乱数シードを設定したり、
乱数を生成するのだ。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/09/スクリーンショット-2020-09-18-22.05.29.png?resize=494%2C326&ssl=1)
乱数シードを設定しないと結果がそのたび違ってくる。
で、このコードもすっかり忘れていて、
先に進めなかった。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2019/01/ojisan3_question-2.png?w=1256)
でも、文系AI人材を目指すなら、プログラミングは必要ないのでは?
しかし、
2年弱、AIの勉強をしてきて、こう思う。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/01/computer_keyboard_yatsuatari_businessman.png?w=1256&ssl=1)
そうではない。だまされてはいけない、と。
本に載ってるコードを、
GithubからGoogle Colabにコピペして、
ただ実行するだけでは、
本当になんの役にも立たないのだ。
実務でコーディングすることはないかもしれない。
しかし、
コードを読み解けないのなら、AIのしくみは理解できない。
しくみがわからないものを、
自信を持って経営者に勧めることはできないのだ。
(ここは、中小企業診断士としてという意味です。)
せっかく勉強するなら、
本質的なことから目を背けるのはやめよう。
そのことを肝に銘じて先に進みたい。