AI初学者だった私が、AIの学会発表を達成するまでの道のりをご紹介します。
AI初心者が学会発表するまでの道のり【AI勉強法】
私は約1年前にAIの勉強を始めました。そこから勉強を続けて、研究論文を投稿するところまでたどり着きました。
この記事では、その過程や勉強法をご紹介します。AI初心者の1サンプルとして読んでいただけたら幸いです。
自己紹介
AIを勉強し始めたころの私は以下のような人でした。
- 理系(非情報系)
- プログラミング経験:C、C++のみ
偉そうに理系出身と書きましたが、文系出身のAIエンジニアもたくさんいらっしゃることを考えれば、基礎的な数学を少し勉強すれば問題ないと思います。また、機械学習で用いられるPythonは未経験でした。
私の勉強ステップ
私のAI勉強のステップは下記の通りです。
- E資格取得 ←参考書「ゼロDeep」で代用可
- PyTorchで実践的に勉強
- 論文調査
- 新しいアイデアを実現して論文を書く
- ネットなどで調べながら実装を進める
知識と実装力の推移
私の勉強ステップにおける知識と実装力の関係を、体感で大雑把にグラフ化してみました。
個人的に、上図のポイントは下記の2つだと考えます。
- そのときの能力によって勉強法を変えている点
- 実装力が知識を上回ることはない点
それぞれの勉強ステップについて以下で詳しくご紹介していきます。
E資格取得
私は、AI勉強の第一歩目として、日本ディープラーニング協会(JDLA)のE資格を取得しました。
E資格では、理論だけでなく、実装レベルで機械学習やディープラーニングを理解するように設計されています。
▶【体験談】zero to oneのオンライン講座でE資格とってみた感想
フレームワークなしで原理を理解
特にE資格のプログラムや試験では、機械学習フレームワーク(PyTorch、TensorFlow、Kerasなど)を使わず、Pythonだけで実装する点が特徴的です。このような勉強を行うことで、ブラックボックスになりがちなディープラーニングを”原理”から理解することができます。
正直フレームワークを使用すれば、原理を理解していなくても、ディープラーニングを再現実装できます。しかしながら、原理を理解していないと、新しいネットワークのアイデアを生み出しり、学習が上手くいかないときに考察したりするのが難しいでしょう。
私自身も現在、機械学習フレームワークの便利さに感謝しつつ、E資格で原理を学んだことの大切さを日々感じています。
E資格の費用はなかなか高い
E資格を取得するためには、平気で数十万円かかります。もちろんそれだけの価値はありますが、なかなか経済的なハードルが高いです。
E資格のようにディープラーニングを原理から学びたいが、高額な資格には興味がないという方々には、以下でご紹介する「ゼロから作るDeep Learning」を強くオススメします。
参考書「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」
E資格と同等な勉強ができる本はやはり「ゼロDeep」です。私がもし、もう一度E資格の勉強を本でするなら、間違いなく「ゼロDeep」で勉強します。
とても有名で人気のある入門書です。
E資格と同様にフレームワークなしで実装
E資格のコンセプトと同様に、こちらの参考書では機械学習フレームワークを使用しません。Pythonで書かれたプログラムを見ながら、自分の手を動かすことで、ディープラーニングの”原理”を理解できると同時に、実装力も身に着けることができます。
E資格の問題に似ている
E資格のプログラムや試験では、「ゼロから作るDeep Learning」とほぼ同じコードがたくさん出てきました。逆に、JDLAは「ゼロDeep」をもとに問題を作ってるんじゃないかと思うほどでした。
第一章でPython入門
本書の第一章が「Python入門」になっています。そのため、当時の私のようなPython未経験の方々も安心でしょう。
研究室の新人も輪読しています
私が所属する研究室では、AIに興味がある新人は、まず「ゼロから作るDeep Learning」を輪読します。このように世間だけでなく、私の周りでもよく読まれている本です。
基礎や知識がないと実践に移れない↔基礎や知識だけでは実践力ゼロ
基礎や知識を身につけないと実践に移れないので、「ゼロから作るDeep Learning」のような入門書で勉強するステップは遠回りのようで近道です。
一方で、正直、E資格取得や「ゼロから作るDeep Learning」だけでは、実践的なディープラーニングは実装できません。
そのため、私は次のステップとして機械学習フレームワークのPyTorchを勉強し始めました。
PyTorchで実践的に勉強
E資格取得で身につけた知識などを基盤としてフレームワークの一種であるPyTorchの勉強に移りました。フレームワークを用いることで、より複雑なネットワークをより簡単に実装できるようになります。
具体的には、参考書「つくりながら学ぶ!PyTorchによる発展ディープラーニング」とUdemy「【PyTorch+Colab】PyTorchで実装するディープラーニング -CNN、RNN、人工知能Webアプリの構築-」で勉強しました。
なぜTensorFlow、KerasではなくPyTorch?
いくつかある機械学習フレームワークのうちPyTorchを選択した理由は、勢いがあるからです。
▶オススメの機械学習フレームワークはPyTorch【2020】
参考書「つくりながら学ぶ!PyTorchによる発展ディープラーニング」
とても有名で人気な参考書です。
ちなみに、私は著者の小川雄太郎さんと直接お話する機会があり、購入を決意しました。
理論から実装まで詳しく記されています。各章の冒頭で、どんな原理か、どんな処理を行っているかを言葉で理解します。そして、大まかなイメージをつかんだ後に、実装レベルで理解していきます。
ボリュームも十分です。この1冊を理解できれば大抵のディープラーニングモデルを実装できるようになると思います。
Udemy「【PyTorch+Colab】PyTorchで実装するディープラーニング -CNN、RNN、人工知能Webアプリの構築-」
私は、我妻幸長さんの「【PyTorch+Colab】PyTorchで実装するディープラーニング -CNN、RNN、人工知能Webアプリの構築-」を受講しました。受講理由は、上記の小川さんの参考書では、いきなり複雑なネットワーク構造の実装から始まっており、PyTorch自体の基礎の解説は省略されていたからです。
一方こちらのUdemyコースでは、基礎的なテンソル(Tesor)の演算・操作や、最小限なサイズでシンプルなネットワーク実装から始まります。このような基礎を丁寧に解説してもらうことで、その後の勉強を効率的に進めることができました。
さらにこちらのコースでは、最終的にAIアプリの公開までできるようになります。具体的には、自身で学習させた画像分類をネット上で行えるようになります。勉強だけにとどまらず、誰でも使えるようにオンラインで公開できるのは、大きなモチベーションになると思います。
基礎からアプリをつくるところまで丁寧に解説を受けてみたい方々は、受講を検討してみるのもアリだと思います。
▶私が受講したUdemyコース
PC環境は?
ディープラーニングを行うためには、それ相応の計算パワー(GPUなど)が必要です。私はGPU搭載を搭載した手元のPCで学習を行いましたが、勉強し始めにいきなり高額なPCを購入するのはあまりオススメできません。
まず初心者の方には、Google Colaboratory(無料)をオススメします。上記でご紹介した参考書とUdemyの内容もGoogle Colaboratoryで勉強可能です。以下で、その詳細を、他の学習環境と比較しながら説明していきます。
▶【環境構築】「つくりながら学ぶ!PyTorchによる発展ディープラーニング」
私の場合:手元のPC
私は、下記のCPUとGPUを搭載した手元のPCでディープラーニングを実装しています。
- CPU:i7-6700
- GPU:GTX1080
- メモリ:16GB
参考書などで勉強するステップが終わり、本格的に自身の研究をするようになった場合、PCの購入を検討してもいいかもしれません。
アマゾンウェブサービス(AWS)
AWSはAmazonのクラウドサービスです。有料です。
参考書「つくりながら学ぶ!PyTorchによる発展ディープラーニング」ではAWSの利用方法が詳しく解説されています。
Google Colaboratory
Google ColaboratoryはブラウザのみでGPUにアクセスできるサービスです。また、主な機械学習ライブラリがデフォルトで入っているので、煩わしい環境構築なども不要です。それでいて基本無料(制限あり)なのが驚きです。
論文調査
上記の参考書などで、定番のモデルを実装できるようになった後は、論文調査を行いました。論文調査を行うことで、本当の最先端を知ることができます。
さらに、既存の論文では解決できていない課題などを探しながら読むと、自身の研究へとつなげられるでしょう。
論文検索はGoogle Scholarでよく行われます。
新しいアイデアを実現して論文を書く
論文調査で抽出した課題を解決するようなアイデアを思いついたら、今まで勉強した知識や実装力を使って、新しい研究を実現させましょう。
ここまで来られれば、実装上の分からないことが発生しても、ネット上で調べながら自身で進められるようになっているでしょう。
成果が出れば、あとは論文を執筆して投稿するだけです。私は初心者ながら、論文の査読を通過し、学会で発表するところまでたどり着きました。
まとめ
- まずは基礎を固めることが遠回りのようで近道
- Python
- 機械学習・ディープラーニングの原理
- 基礎だけでは実践的には活躍できない
- PyTorch
- 論文調査で最先端を知る
- 真似できる技術はないか
- 解決されていない課題はあるか
- 既存の論文で解決されていない課題を自身のアイデアで解決する
- 論文を執筆して投稿する
さいごに
AI初学者だった私がAIの論文投稿するまでの過程・勉強法をまとめてみました。特に、勉強し始めのころの勉強法を多めにご紹介しました。
参考になれば幸いです。
以上です。
コメント