私が別業種からIT業界に転職し、AIエンジニアになった経験や、現職でAIエンジニアの面接をしている経験からAIエンジニアを目指している方がどういった事を勉強していくとAIエンジニアになれるかを説明していきたいと思います。
私の専門が強化学習と最適化なので、この2つの領域に関する内容がメインになります。
基本部分
プログラミング初心者はまずここから
プログラミングスキルを磨こう
まずは当たり前ですがプログラミングができる必要があります。
言語はとりあえずPythonで良いです。
基本的なPythonの文法、PEP8などを勉強していきましょう。
基本的なプログラミングができるようになったよ!という方にはその次に競技プログラミングをやってみることをお勧めします。特に最適化エンジニアを目指す方は。
競技プログラミングというのはプログラミングスキルを競うコンテストのことで、概ね問題を規定の処理時間内に解くことができるアルゴリズムをプログラミングすることを求められます。
国内ですとAtCoderが最も有名かと思います。
競技プログラミングではアルゴリズムの知識、データ構造、計算量など業務でも役にたつ汎用的な知識を身につけることができます。
AtCoderは色によってランク分けされており、現職での採用の際もAtCoderで緑以上だと、おっ!ってなります。
チーム開発で役立つ知識を身につけよう
企業で開発をする際に一人ですべてのプログラミングをするのは稀で複数人で開発していくのが一般的です。そのためチームで開発する際に役立つ知識を身につけておきましょう。
- Gitの操作方法
バージョン管理としてはGitを使っていることが多いと思うので、Gitの基本的な操作には慣れておきましょう。 - Githubの操作方法
チーム開発の際はGithubでPull Requestを作成してマージすることが多いので、Pull Requestについて勉強しておきましょう。
強化学習エンジニアを目指す場合
強化学習ってロマンの塊
実応用はまだまだこれから、伸び代があるね
まずは強化学習を理解する
当たり前ですが、強化学習を知らないことには強化学習エンジニアにはなれません。強化学習とは何か、どんな手法があるか、などを勉強しましょう。
知識として理解した上で、代表的な手法(DQNなど)を実装してみましょう。実装したソースをGithubにpushしておけばちゃんと勉強している証明になるので一石二鳥です。
kaggleなどのコンペで強化学習に取り組んでいるのも評価ポイントになります。(Connect Xなど)
+α 自分の専門分野を見つけよう
強化学習には様々な研究領域が存在します。得意領域があるとポジションによってはかなりプラスに働きます。
どのような研究領域があるのかは別途まとめていきたいと思います。
最適化エンジニア
実際に活躍してるAIといえば最適化なんじゃないかな!
ライバルは画像認識
まずは最適化を理解する
最適化というと大きいので、もう少し細かく分類した方がわかり易いと思います。大枠では以下の2つに分けられます。
- 連続最適化
- 組み合わせ最適化
企業では組合せ最適化の需要の方がかなり高いので、組合せ最適化について勉強していくことをお勧めします。
組合せ最適化には典型問題がいくつもあり、それらを解くためのアルゴリズムが色々提案されています。
大体どの典型問題にも基本となるアルゴリズムがあるので、それらを勉強していくと最適化という領域が理解できると思います。
ソルバを使ってみよう
最適化問題を解くためのソフトウェアとして最適化ソルバと呼ばれるものがあります。解きたい最適化問題を定式化してソルバに突っ込む、というのがまず最初に最適化問題の解き方と一番メジャーだと思います。ソルバとは何か理解する、ソルバを使ってみる、などソルバについて勉強しておきましょう。
メタヒューリスティクスを知ろう
最適化ソルバで問題を解けると精度の良い解を求めることができるので、できればそうしたいのですが往々にして問題になるのがソルバの処理時間になります。ソルバは扱う変数の数が増えると処理時間が爆発的に増加するので、問題規模によっては使い物にならない事がよくあります。
そういった時に検討されるのがメタヒューリスティクスの手法になります。
メタヒューリスティクスの特徴としては最適解を保証してくれるわけではないが、現実的な時間で解を求める事ができます。
メタヒューリスティクスも様々な手法が提案されていますが、代表的な手法について勉強して、実装してみましょう。
コメント
コメント一覧 (1件)
Hi, this is a comment.
To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.
Commenter avatars come from Gravatar.