😸

Tensorflow初心者が1ヶ月でどこまでできるか試してみた

2020/12/22に公開

はじめに

アドベントカレンダーに登録した際は「よっしゃ!やるぞー!」みたいな感じだったんですが、いざ師走になると時間が経つのが早い早い…

ということで!? 言い訳から始まり、さっそく暗雲漂う記事になってしまいました。準備時間もあまり割けなかったので、自分のために Tensorflow の学びの記録を残しておきたいと思います。

私自身、Tensorflow 初心者ですので、スターターな方々が学習方針を立てる際の参考にでもしていただければ嬉しいです。

あと、、、 この記事、まだ途中です、、、

書くこと/書かないこと

  • 書くこと
    • 初心者が体系立てて Tensorflow を学ぶには?
  • 書かないこと
    • Tensorflow is what?
    • 数学や機械学習の動作原理
    • Tensorflow に係る発展的な内容

学びの記録

早速ですが、ド初心者の私がどのように学んだかを順に記します。ここに記したこと以外にもいろいろと寄り道はしましたが、あまり効率的でないものもありましたので、効果的かつ効率的なもののみ記します。

チュートリアル実施

初心者にはこちらの公式チュートリアルが良いのではないでしょうか。

実はこの後に紹介する Cousera のコースと多少、内容が被っているので Cousera だけやるのもありかと思います(個人的には Cousera の方が楽しく進められ、カバー範囲も広いため)。ただ、Cousera は動画主体で進み、その動画は日本語字幕があるとはいえ英語なので、英語アレルギーがある方は公式チュートリアルだけでも良いと思います。その場合は、記載のコードのモデルやハイパーパラメータ、最適化手法等を Google Colab 上でいろいろ弄って変化を楽しんでみると学びが深くなるのではないでしょうか。

Cousera

こちらをやりました。Google のリード AI アドボケート、Laurence Moroney のコースなので、とても信頼性は高いです。

注意点としては、7 日間だけ無料で、その後は 5,000 円/月くらい掛かります。この introduction だけで最低限の基礎が学べて、頑張れば 2 日(私は計 6H 程度で終わりました)で終わるので、そこだけ学んでも良いと思います。

introduction に続き、CNN、RNN、Seq2Seq と続きますので、できればすべて受講すると一通り学べてよいと思います。死ぬほど頑張れば7日間で終わると思います(働いてる方は有給フル投入しないと厳しいかもしれません)。

上述したとおり、英語のコンテンツですが、動画は日本語字幕もありますし、テキストであればDeepLを利用すれば誰でも学習を進めることができます。

  • Pros
    各週でプログラミング課題というものがあります。Google Colab のサンプルが提示されるので、それに従って解けばさほど難しくはありません。サンプルはモデルやハイパーパラメータ、最適化手法をいろいろと弄って変化を観察することができるようになっており、とても理解が深まります。
  • Cons
    はじめのうちはプログラミング課題の進め方が非常にわかりにくい。

Web 上の上記2つに加え、「DeepLearning with Python」という本を読みました。こちらはなかなか重量級なので、じっくり学びたい方は読んだら良いのではと思います。超がつくほど雑ですが、一応、こちらに纏めも書いております。ご参考までに。

ここまでが Tensorflow について学んだことになります。
Tensorflow を使う分には、開発したプロダクトの動作原理はかなりの部分がブラックボックスだと思います。

動作原理をより理解したいのであれば、こちらの記事で書いたように、「ゼロつく」を読みましょう。

プロダクト開発

上記2つで Tensorflow の基礎は学べますが、じゃあどうやってプロダクトにするの?というところが分からない方も多いのではないでしょうか。

そんな方には Udemy あたりで作りたいプロダクトを順を追って作れるコースを探してみるのはいかがでしょうか。

私は以下のコースを見て LINE ボットを作ってみました。

自然言語処理とチャットボット: AI による文章生成と会話エンジン開発 | Udemy https://www.udemy.com/course/ai-nlp-bot/

こちらのコースでは、順を追って開発していくと、最終的には Seq2Seq を使ったチャットボットが作れるようになります。ただし、Jupyter Notebook、もしくはコマンドライン上で動くもので面白みがまったくありませんでした。

ここでも、コースで提示されたコードを写経するだけに留まらず、モデルやハイパーパラメータ、最適化手法をいろいろ試して見ると面白いかと思います。

私も実際に試しましたし、ユーザインターフェースを LINE にしたら多くの人に遊んでもらえるのでは?と思って LINE ボットに応用しました。

開発したものはGithubに上げております(まだ途中でかなりダメダメな感じですw BERT なども使って対話分生成ができるようにしていくつもりです。)

最後に

上級者目線では、「なにやってんだが、、、」って感じかもしれませんが、AI の民主化が叫ばれる中!?、初心者でもコードを弄って遊ぶ敷居が大きく下がりました。

誰かが作ったサンプルコードを応用して色々とエラーもでるなか、学習が進んだ際の感動はなかなかのものです。

もし未だ Tensorflow をあまり弄ってない方、AI を触ってみたいけど敷居が高そうだと思っている方がいらっしゃいましたら、是非、一緒に Try してみませんか?

きっと一生ものの趣味になるのではないかと思います!

Discussion