データの前処理に
これから2週間、
残り1カ月の半分を費やす。
で、そのあと、いよいよ、
つまり、
という機械学習のメインイベントに取りかかる。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/01/question_head_gakuzen_boy.png?w=1256&ssl=1)
データの前処理に2週間も使って、
メインのモデル構築、間に合うのか?
うむ。
たしかに心の片隅では、
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2019/01/necchusyou_face_boy3.png?w=1256)
間に合うわけないじゃん!
とサジを投げかけている自分がいる。
ただ、現在、AI開発の世界で、
モデルを一から作ることはほとんどない。
たとえば、今回つくる
という文章生成モデル。
この「Seq2seq(Sequence to Sequence)モデル」とは、
モデルの入力と出力が時系列データになっており、
時系列データを別の時系列データに変換してくれるもの
で、
機械翻訳やチャットボット、メールの自動返信など、
さまざまなアプリで利用できるニューラル・ネットワークだ。
大まかなしくみはこんな感じで、
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/04/63971A1B-8478-496C-AF0E-BDDBAE17AFE7.jpeg?resize=500%2C283&ssl=1)
『ゼロから作るDeep Learning 2』p288 図7ー5
Encoder Decoder モデルとも呼ばれる。
ここでは、
Encoder(エンコーダー)が
「吾輩は猫である」という文章をエンコード(符号化)し、
Decoder(デコーダー)が、
エンコードされたデータをデコード(復号)している。
これを当初、
という、
いま人気急上昇中のライブラリでつくる予定だった。
(プロはみんなこれ?)
しかし、時間がないなか、
いまから新しいライブラリを学習している余裕はない。
『Pytorch による発展ディープラーニング』
という人気本も準備したが、
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/04/0B7DA4E5-258C-49E2-9BD1-1125EB0E297B.jpeg?resize=375%2C500&ssl=1)
キカガク長期コース講師からも勧められた一冊。
キカガク長期コースを卒業してから、
改めて着手しよう。
そこで、
キカガク長期コース講師のアドバイスを受け、
プログラミングの経験がなくても簡単にコードを書くことができる、
を選んだ。
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2020/04/68C07DC5-736C-4577-8391-4CDD8B26C9E5.jpeg?resize=500%2C158&ssl=1)
ロゴ?
この「Keras」には、
モデルの作り方が、
2.Function API
の2つあって、
2のFunction APIを使うと、
Seq2Seqのような複雑なモデルもスムーズに定義できるという。
機械学習では、
データの前処理に時間を取られるので、
モデルは「転移学習」(*1)や「ファインチューニング」で
定義、学習させるのが一般的な流れになっているのだ。
つまり「Keras」を使えば、
![](https://i0.wp.com/uncle-kanazawa.com/wp-content/uploads/2019/07/warau.png?resize=233%2C258&ssl=1)
多分、大丈夫!(泣くな!)
まにあうかもしれない!
のだ。
あと1カ月、がんばろう。