現場に通用するAIエンジニアになるためのロードマップ – 活用すべき資料 7選

AI

概要

近年、AIエンジニアの需要が非常に高まっています。そんな時代背景の中、AIエンジニアになるためにPythonを学び始める方は多いと思います。

そして、Pythonを学んだは良いが以下のような悩みがある、という人もいるのではないかと思います。

頑張って勉強してPythonの基本文法は抑えたし、簡単なツールやアプリケーションは作れるようになった!

でもAIエンジニアになるためには次はどうしたらいいんだろう…

一生懸命勉強したけど、学んだことってAI開発の現場で通用するのかな…?

本記事ではそんな方向けに、次に学ぶべきこと現場で使われる技術の学ぶ方法をまとめて解説します。

この記事を読むメリット
  • AIについて学ぶための指針が得られる
  • 現場でどういう技術が必要かが分かる

具体的には以下のような視点で、情報をまとめていきます。

  • 機械学習を手を動かしながら学ぶ
  • 深層学習のフレームワーク Pytorch について手を動かしながら学ぶ
  • 画像処理について手を動かしながら学ぶ
  • 質の高いPythonコードを書けるようにする

機械学習を手を動かしながら学ぶ

既に様々なサイトで紹介されているように、AIエンジニアに求められるものとして、機械学習に関する知識は必須です。

AI開発を行っていく際、機械学習を避けては通れません。 

https://www.bigdata-navi.com/aidrops/484/

機械学習を学ぶのには色々な選択肢がありますが、本記事では ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 を読むことをオススメします。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ディープラーニングの本格的な入門書。外部のライブラリに頼らずに、Python 3によってゼロからディープラーニングを作ることで、ディープラーニングの原理を楽しく学びます。 ディープラーニングやニューラルネットワークの基礎だけでなく、誤差逆伝播法や畳み込みニューラルネットワークなども実装レベルで理解できます。 ハイパーパ

この書籍は Python, Numpy の入門から始まり、ニューラルネットワーク、ディープラーニングについてコードベースで丁寧に解説されています。

AIやディープラーニングに関する書籍は山のようにありますが、その原理・仕組みについてはふわっとした説明でごまかされている書籍が多く見られます。

本書籍では誤魔化した説明は一切なく、きちんと原理・仕組みを学びながらコードが書けるようになるので、入門書としてはとても良い本であると言えるでしょう。

深層学習のフレームワーク Pytorch について手を動かしながら学ぶ

機械学習について一通り学び、Numpyで実装できるぐらいまでたどり着いたら、次は深層学習用のフレームワークについて学んでいきます。

Pytorch を選択する理由

深層学習用のフレームワークは Tensorflow( + Keras), Chainer, Pytorch など様々ですが、本記事では Pytorch について学ぶことを考えます。

その理由としては以下の2点が挙げられます。

  • シェアが高いのは Tensorflow か Pytorch である
  • Pytorch の方が初学者に優しい

正直なところを言ってしまえば、深層学習フレームワークは結構それぞれ似ている部分が多くあるのでいずれかのフレームワークについてある程度習熟すれば他のフレームワークもある程度扱えるようになっていきます。

したがってフレームワークをどれにするか、というのはメンターや周囲の人間が何を使っているか、というところを重視するのが良いと思います。

Pytorch について手を動かしながら学ぶのに利用する資料・書籍

まず Pytorch について学ぶには、公式で提供されているチュートリアルを実施するのが良いでしょう。

Pytorch 公式チュートリアル
https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html

ゼロから作るDeep Learning について学習ができていれば、さほど苦労せず内容を飲み込めるかと思います。

公式チュートリアルが完了したら次はPytorchを使って発展的な機械学習モデルを作ることについて学ぶのが良いと思います。

発展的な内容については以下の つくりながら学ぶ! PyTorchによる発展ディープラーニング が分かりやすく、良くまとまっています。

つくりながら学ぶ! PyTorchによる発展ディープラーニング
つくりながら学ぶ! PyTorchによる発展ディープラーニング

この書籍では、転移学習を始めとして、物体検出セグメンテーション姿勢推定画像生成異常検知自然言語処理、etc… と言った、AI開発の現場で良く利用されるような手法についてがコード、解説付きでまとめられています。

この本で紹介されている手法について、コードで理解できるようになれば、AIエンジニアとして活躍できる見込みが高まります。

画像処理について手を動かしながら学ぶ

AI開発の現場では画像を扱うことが非常に多くあります。近年ではテキストや表データなども画像として扱おう、といった手法も出てくることもあります。

したがって、画像処理に関する知識はAIエンジニアのスキルとして必須と言っても過言ではありません。

画像処理について学ぶには以下の 画像処理100本ノック が非常に良いです。

Build software better, together
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.

@curry_frog 氏によって作成されており、AI実装検定のシラバスに採用されるなど、非常に質の高い資料となっています。

この資料は現場でよく使われる基本的な画像処理の手法について、Numpyで実装しよう!という内容になっています。

画像処理について、手を動かしながらコードで理解することができるので、これを全て終えるころには一人前の画像処理の技術が身に付いている、と言っても過言ではありません。

また、平行して書籍での学習を進めることもオススメします。書籍は以下の ディジタル画像処理 が良いです。

ディジタル画像処理[改訂第二版]
ディジタル画像処理

基本的な画像処理の手法について、ほぼ網羅されており辞書としても使えるぐらいの書籍です。

数式ベースでの解説がされているため、先に紹介した画像処理100本ノックと平行して読み進めるのが良いでしょう。

質の高いPythonコードを書けるようにする

ここまで紹介してきた内容を踏まえると、基本的にPythonをゴリゴリ書いていく、ということはなんとなく分かると思います。

書くコードが汚く、再利用もできず、他人に見せられないような複雑なものになってしまっていると、エンジニアとしての価値は非常に低いものとして見られてしまう場合があります。

機械学習、画像処理について学びながら、プログラミングやPythonについての理解もAIエンジニアにとっては大事なスキルとなります。

綺麗なプログラミングを行うために読むべき書籍としてリーダブルコードがあります。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
「美しいコードを見ると感動する。優れたコードは見た瞬間に何をしているかが伝わってくる。そういうコードは使うのが楽しいし、 自分のコードもそうあるべきだと思わせてくれる。本書の目的は、君のコードを良くすることだ」(本書「はじめに」より)。 コードは理解しやすくなければならない。本書はこの原則を日々のコーディングの様々な場

この書籍では、読みやすく綺麗なコードとはどうあるべきか、ということが分かりやすく解説されています。

この内容を一通りマスターすれば、自信を持ってチームメンバーや明日の自分に見せられるコードが書けるようになるでしょう。

リーダブルコードはPythonに限らず全てのプログラミング言語で共通して言える知識ですが、Pythonに限っては更にPythonicという考え方が大事になります。

Python はシンプルに多くのことができるように設計されている言語であり、そのPythonの実力を最大限に活かすための考え方を Pythonic と言います。

Pythonic な考え方、書き方を学ぶには以下の Effective Python という書籍が良いです。

Effective Python 第2版 ―Pythonプログラムを改良する90項目
GoogleでPythonを使ったさまざまなサービスを立ち上げ、Pythonを知り尽くした著者による、Pythonエキスパート必携書の改訂版です。 第2版ではPython 3.8に対応、データ構造、内包表記とジェネレータ、性能、デバッグについての章を新たに追加するなど、第1版の59項目を大幅に改訂し、90項目にわたって

この本では最新バージョンのPythonで使えるPythonicなテクニックが、具体的な例を元にコードで解説がされています。

この本のテクニックを自分が書くコードに反映させていけば、短く早い綺麗なコードが書けるようになるでしょう。

まとめ

まとめ
  • ゼロから作るDeep Learning をやる
  • Pytorch 公式チュートリアルPyTorchによる発展ディープラーニング をやる
  • 画像処理100本ノックディジタル画像処理 をやる
  • リーダブルコードEffective Python をやる

一生懸命勉強して、イケイケなAIエンジニアを目指そう!

コメント

タイトルとURLをコピーしました