2020年3月29日日曜日

AI研修を受講してきました!

お久しぶりです。ひっくです。

昨年11月から今年の2月にかけて、こちらのAI研修を受講してきました。
関西電子情報産業協同組合主催 「AI技術者研修」

受講をしてみようと思ったきっかけですが、ここ最近話題になっているAIについて
学ぼうと思いつつもどこから手を付ければいいのやら、となっていたんですね。

そんな時に社内でこんな研修あるよー、と紹介があったのでいい機会だなと思って
参加申し込みをすることとなりました。

受講してみて、印象に残ったことや感想なんかを書いてみようと思います。
また、AIを学習するにあたって、参考にした書籍やサイト情報等も一部載せています。
これから学習したいけどどこから手をつければいいか分からない、という方の参考になれば幸いです。

AIを取り巻く状況


今年から、小学生のプログラミング教育が必修となりましたが、
それと同様にAIに関しても人材育成が急務とされ、大学を始めとする
教育機関でも数理・データサイエンス・AIが必修化される流れにあるようです。

既に国公立大学でも令和二年度からの新入生に対し、
AI教育必修化を決めているところもあります。

今までは理系学部で一部必修となっているだけだったのが
文系・理系問わずに必修になるところが注目すべきところだと思っています。

※人材育成方針については文部科学省が以下のとおり、方針を掲げています。
文部科学省 AI戦略等を踏まえたAI人材の育成について

既に様々な企業がAIを活用したサービス等を作成していますが、
今後、AIの基礎を学んだ方達が社会に出てくるようになると、
更にそのスピードが増すことになるかもしれません。

AIを学習する手始めに


色々な学習方法があるかと思いますが、私が実践した内容を踏まえて、
以下に一例を記載しておきます。

1.まずはここから
私が研修を受講する時点でのAIに関する理解度についてですが、
正直全体像すらあまり理解できていなかったと思います。

もちろん書籍を購入したり、Web上で学習したりすることもできるので、
色々調べてみたりできれば良かったんですが、Web上だと新旧混在した情報も
多くあるので、時間もかかってしまいます。

研修を受講する前に、1冊書籍を購読するよう研修先から依頼があったのですが、
そんな私にとってはAIの全体像を把握するのに、これがとても役立ちました。
薄めの本なのでさくっと読めるのも良いところです。

AIのことについてそこまで知識がない!と感じている方には、
まずは読んでみることをオススメします!
ビジュアル AI(人工知能) (日経文庫) 城塚 音也 (著)

2.もう少し詳しく
ある程度AIの知識は持っているしより詳しく知りたい、という方には
以下のサイトの方がオススメかもしれません。
私も上記の本を読んだ後、研修を受講する前に参考に見ていました。
Chainer チュートリアル

※ちなみにChainerとはニューラルネットワークの計算・学習を行うための
 オープンソースソフトウェアライブラリです。
 開発元は日本の「株式会社Preferred Networks」というところだったのですが、
 昨年12月にFacebook主導で開発しているPyTorchに順次移行することを発表しました。

3.経験を積みたい
私の場合、2と3の間でAI研修を受講しています。
個人学習、研修受講等によりある程度AIについての知識も備わってきたし、
実際に動くコードを書きたい、参考になるソースを読みたいという方には
以下のサイトがオススメです。
Kaggle

データサイエンティストには有名みたいです。
検索すると関連記事もいっぱい出てきます。

これの何がオススメかというと、
Kernelに実際に動くコードが転がっているんですよね。
例外の発生するコードもあったりしますが、
部分的に見れば参考になることは間違いないです。

また、既にデータサイエンティストとして経験を積んだ方が
日々議論を重ねているところもあり、その内容を見るだけでも勉強になるそう。
(私はまだそのレベルにはなっていませんが…)

制限時間はあるもののGPUやTPUも使用できたりしますし(電話番号認証は必要)、
学習対象となるデータも既に用意されているので、
予測モデルを作成するために必要なハードルはぐっと下がります。

AI研修 受講の感想


さて、研修に参加してどうだったか?という話になりますが、
一言でいうと「とても良かった」です。

以下は雑感を記載しています。
今後、似たような研修の受講を検討される場合の参考になるかもしれません。
研修自体の感想もあれば、AI・機械学習に関する感想も含まれます。

1.AIを利用する分野ごとに解決方法は様々
一言でAIを利用するといっても、適用する分野・業態や、何を解決したいかによっても
使用を検討すべきアルゴリズムが異なることが印象的でした。
代表的な分野では使用すべきアルゴリズムが決まっているところもありそうですが、
求めるべき予測精度をどの程度にするかによっても選択の余地があるため
それなりの経験が必要かと思います。

2.機械学習の基本となるコードは簡単に実装可能
プロトタイプといって、実際に動くソースコードを配布してもらい、
挙動の確認をする時間があったり、座学で機械学習の説明を聞いてから
その辺りの確認もできるので、理解がとても深まったと思います。
また、ライブラリが本当に充実していて、普段プログラム開発をするのと同じ感覚で
機械学習を実行できるコードを組めるようになっているんだ、と感じました。

3.予測モデルを作成する上でパラメータの調整は大事
プロトタイプとして用意されたソースコードも、Web上で調べれば似たようなコードを
探すことができるかと思いますが、関数を呼び出す回数や引数への指定等
パラメータ調整で結果がだいぶ変わります。
そもそも関数も選択肢がいっぱいあるのでどの関数を使用すればいいの?とか疑問も多く出てくるので
研修を受講することでその辺りをだいぶ明確に知ることができたと思います。

4.データの前処理はかなり大事
「データの前処理」という工程も非常に大切であることが分かりました。
機械学習をしようと思っても、データの収集と前処理にかなりの時間(約7割程度)がかかると
言われるほど、地味だけれど重要な工程です。
実際にAIを利用するプロジェクトを進める際は、この辺りをどの程度正確に
見積もれるかが重要なところになるかもしれません。
ここでどれだけ正確なデータを集められるか、処理可能なデータとするかによって
学習の精度も変化したりするので、それなりに経験も必要なところだと思います。

5.データの数が増えると計算リソースも必要に
深層学習をする場合、用意した学習データを学習用の関数に食わせて
何度も繰り返し学習させるのですが、これにかなりの時間がかかります。
(特に学習データが画像かつ数量が多い場合等…)
研修にはノートPC持参で参加したのですが、1層の畳み込みニューラルネットワーク(CNN)で
学習させようとした段階でフリーズする始末…。(私のノートが貧弱だったということもありますが。)
学習時間を短縮するために、GPUやTPUが必要なのも肌身で実感できました。

6.数学の知識は結局必要?
統計、行列、確率等、機械学習で利用される数学の知識・考え方は、最低限必要だろうなと思います。
特に考え方の方でしょうか、重要なのは。
高校の時、行列を勉強したことがありましたが、あまり理解できず。
受験にも必要なくなったので、理解できないままその時は終えましたが、
必要な時が来たようです。(行列だけではないですが)

機械学習で利用するオープンソースの関数は、数学の知識がなくても使えてしまうのですが、
中がブラックボックスなので全く理解せずに使えてしまうところも怖い所かと思います。
ただ、ここを最初の段階で深入りすると、数学が苦手な人は相当混乱しそうなので、
ある程度経験を積みながら徐々に肉付けしていく方が良いのかもしれません。

7.Pythonの知識は必要?
研修で使用するソースコードはPythonで書かれていますが、
今回の研修ではPythonに関する文法説明の時間等はなかったので、
普段ソフトウェア開発に関わる方なら、個人的に基本文法程度はさらっておくと良いと思います。
(研修最終日の要望に出ていたので、今後講座内容が変わることはあるかもですが)
私は以前Pythonエンジニア認定基礎試験を受験するため、ちょっと学習していました。
最初はその程度で十分です。

以上、AI研修を受講して感じたこと、印象に残ったことのまとめでした。
それでは今回はこのへんで。
ではまた!

0 件のコメント:

コメントを投稿