ホップステップジャンプ! 段階別やることリスト
ここでは初級、中級、上級別に、キャリアアップのために何をすべきかを説明します。
初級 学生や他職種からAIエンジニアや データサイエンティストを目指す
AI人材は大幅に不足しています。AI活用へのニーズが高いため、AIエンジニアやデータサイエンティストに関しては未経験での求人も見るようになりました。
現在学生であったり他職種に就いていたりする場合で、まったくの未経験でも半年から1年間懸命に努力すればAIエンジニアやデータサイエンティストとして就職できる可能性はゼロではありません。しかし、目標とする職種に就き、スムーズにキャリアをスタートさせるためには、しっかりと学習計画を立てて勉強を進めていく必要があります。
まずは書籍を読んでみよう
インターネットにはさまざまな情報があふれています。しかし、初級者にとっては、玉石混淆の情報の中から自分に役立つものを選び出すのは、なかなかハードルが高いことでしょう。一方、書籍は情報が体系的に整理されているため、読みやすく、勉強の道筋が付けやすいというメリットがあり、初学者向けの良書も数多く存在します。
まずは、AIや機械学習に関連する書籍を4~5冊読み込んで、基本となる知識を身に付けましょう。AIの基礎的な専門用語を網羅した概論、機械学習に必要な線形代数や統計の知識、PythonやRのハンズオン的な入門書などがお薦めです。なお、第4章では、初級者が読んでおくべき書籍を紹介しているので参考にしてください。
オンラインビデオコースを活用しよう
書籍と並行して、オンラインビデオコースを活用しましょう。書籍を読むだけでなく、映像による講義を受けることで理解を進めることができます。
オンラインビデオコースの何よりの利点は、自分の都合の良いときに視聴できる点です。レベルや価格もバリエーションに富んでおり、初級者向けなら数千円で受講できるものも数多くあります。
スタンフォード大学をはじめ、世界中の大学のコースを受講できる「Coursera」(英語を中心にさまざまな言語のコースがあり、なかには日本語の字幕が付くコースもある)、日本語のコースも多い「Udemy」など、さまざまなサイトがあります。各サイトで、「機械学習」や「Python」などのキーワードでコースを検索してみましょう。なお、第4章では、 お薦めのオンラインビデオコースサイトを紹介しているので参考にしてください。
Pythonのコーディングにチャレンジしよう
AIエンジニアでも、データサイエンティストでも、数理モデルをコーディングするスキルが求められます。プログラミングにはPythonやRなどの言語が使われますが、お薦めはPythonです。
Pythonは、コードの書きやすさ、理解しやすさを重視し、シンプルな文法で知られるプログラミング言語です。オープンソースで公開されており、これまでWebアプリケーションなどによく利用されてきました。比較的習得がしやすいことに加え、機械学習関連のライブラリではPythonで実装されたものが多いことから、機械学習ではPythonが広く使われています。
機械学習や数理モデルを解説する書籍には、Pythonを使ったプログラム例が掲載されています。まずは、このプログラムを実際に動かしてみるところから始め、さらにコードを書く練習をしてみましょう。Pythonは、「Qiita」などのチュートリアルサイトで、初級者向けの解説を読んで実装してみるのが手軽です。最近ではブラウザ上で動く「Jupyter Notebook」を活用することが増えてきています。
勉強仲間を見つけよう
AIや機械学習に限らず、難易度の高い学習分野は一人で勉強をしていると集中力が続かず、効率が落ちがちです。また、進捗が悪く、成果が上がらずに挫折してしまうこともあります。
ぜひ、一緒に勉強する仲間を作ってください。SNSで志を同じくする仲間を見つけて交流したり、学校や職場の仲間で勉強会を開いたりといった活動により、学習のためのモチベーションが高まるだけでなく、相互に教え合うことで効率を上げることができます。
最近では、毎日のようにAIの勉強会が開催されています。「connpass」「Meetup」「Doorkeeper」「TECH PLAY」などのイベント管理サイトで検索し、参加してみましょう。
また、オンラインでのコミュニティ活動もお勧めです。SlackやFacebookなどでコミュニティを探してみましょう。
●代表的なイベント管理サイト
長期戦を覚悟しよう
AIは、今後大きく成長が見込まれる分野であり、人材不足が課題になっています。未経験の求人も多いため、すぐに就業できるように思うかもしれません。しかし、AIエンジニアやデータサイエンティストに求められる知識やスキルは幅広く深いので、勉強の途中でくじけてしまう人が多いのもまた事実です。
数カ月で就職や転職がかなうほど、簡単な分野ではありません。世の中はブームといえるほどAIがもてはやされていますが、その勢いに押され、大学やスクールに入って授業を受けてみると、実際にはついていけずに挫折するという話もよく聞きます。1~3年くらいのスパンで計画を立て、自分に合ったペースを考えながら念入りに学習を進めることが必要です。千里の道も一歩からといいますが、長期計画を基にあせらず、コツコツ一歩ずつ進んでいきましょう。
文系出身でも大丈夫?
AIエンジニアやデータサイエンティストには、数学の知識やプログラミングスキルが求められます。そのため、大学で関連のコースを受けてきた理系出身者のほうが、就職・転職にあたって有利になります。
文系の人は、数学に苦手意識を持ちがちです。機械学習関連の職種に最低限必要な知識は、統計、確率、線形代数など大学の一般教養で履修する範囲が基本です。プログラミングに関して必要なのは、プログラムで何を実現したいかを理解し、それをロジックとして組み立て、プログラミング言語で書くという力であり、文系だからといって敬遠する必要はありません。
文系の学部に在学中であれば、他学部の数学やプログラミングのコースを履修するという方法もあります。新卒でアプリケーションエンジニアになってからAIエンジニアを目指すというキャリアパスも考えられるでしょう。
AIエンジニアやデータサイエンティストになるときに、文系だからといって諦める必要はありません。むしろ、目標に向かって着実に試行錯誤しながら進むことができるかどうかが重要になります。
中級 現場の知識を活かし、 自立自走型で応用分野の経験を広げよう
AIエンジニアやデータサイエンティストになったからといって、もちろんそこで終わりではありません。AIエンジニアからデータサイエンティストへの転職など、キャリアアップを目指すには、経験を重ねつつ学習を継続する必要があります。
実務経験を積み、自立自走型人材になって、一段上を目指す
どのような職種でも、キャリアアップのためには現場で実務経験を積み、そこで得た知見やスキルを次に活かすことを繰り返していく必要があります。加えて、AIエンジニアからデータサイエンティストを目指したい、データサイエンティストとして年収アップを図りたいのであれば、上からの指示に唯々諾々と従うのではなく、自分から目標を達成するための戦略を立て、行動する、自立自走型の人材になる必要があります。技術的な知識やスキルはいうまでもなく、顧客から要望を引き出し、ビジネス上の課題を整理して解決策を提示するといった、コンサルタントとしての力も磨いていかなければなりません。
自分の専門分野を確立し、多くの事例を知ろう
一口に機械学習といっても、画像認識、音声認識、自然言語処理などデータ分野はさまざまです。業務でどの分野を扱うことになるかはわかりませんが、少なくとも1つの分野について深く掘り下げ、専門分野を確立しましょう。その上で、他の分野についても興味を持ち、アナロジーを使って技術知識を横展開する姿勢が望まれます。
また、機械学習を活用する産業も多岐にわたります。金融、医療、製造、広告など多くの業種で機械学習が活用されていますが、産業が変われば課題解決のテーマはまったく異なり、企業の数だけ活用事例があります。
AIエンジニアやデータサイエンティストにとって、どれだけ多くの事例を知っているか、そこから得た知見をプロジェクトに活かせるかが非常に重要です。ただし、現場ですべての分野、業種を経験できるわけではありません。そこで、初級者・中級者にお薦めなのがKaggleです。
Kaggleを活用しよう
Kaggleは、データサイエンティストとAIエンジニアのためのコミュニティサイトです。機械学習やデータサイエンスについて学ぶためのハンズオン的な事例アーカイブ、各種のリアルなデータセットを利用できるほか、与えられた課題に対して実際にデータ分析を行うことができます。また、ブラウザ上で手軽に他の上級ユーザーのデータ分析の結果(PythonやRのコード)をコピー(フォーク)して自分のものとして利用できるカーネル機能がとても便利です。
Kaggleの最大の特徴は産業別、テーマ別にデータ分析コンペティションが行われていることです。住宅価格の予測、手書き文字の認識、YouTubeの動画解析、メルカリの価格レコメンドなど、各企業からかなり踏み込んだ生データが提供され、200万~1.5億円ほどの賞金が懸けられており、世界中のデータサイエンティストたちと協力・競争してスコアを競います。
まずはカーネルを使って興味のあるデータセット課題に取り組んでみましょう。上級者のカーネルを参考にしてある程度の知識が付いたら、ノーヒントかつ自分の力で分析モデルを応用し、試してみてください。分析結果を自分のカーネルとして公開すると、世界中の他ユーザーからフィードバックが得られます。自分の専門分野や今までに経験してきた業種に限らず、別の分野、他の産業の課題にもチャレンジすることで知識の幅が広がります。Kaggleには世界中のAIエンジニア、データサイエンティストと議論を交わすことのできるフォーラムもあります。実践的な学習により事例を知り、海外や他分野の人とコミュニケーションを取ることが、次のステップへとつながります。
●データサイエンティストとAIエンジニアのためのコミュニティサイト「Kaggle」
上級 論文読解・コード実装を通じて、 先端AI技術の理解にもチャレンジ
データサイエンティストとして現場のリーダークラスを目指したい、さらには一歩進んで研究者になりたい場合は、AIに関する最新技術についても常に目を向けていなければなりません。自分の専門分野について研究を重ね、世界の最新技術についていきましょう。目安としては機械学習の修士課程卒業かそれと同等の知識と経験が身に付けば、自ら学会発表や論文発表が可能になってきます。
論文を読んで最新技術を知ろう
AIや機械学習の技術は日々進化しています。自分の習得した知識やスキルが時代遅れのものにならないように、AIに関連する論文を読み、常に最新の情報をキャッチアップしておきましょう。初級者であっても、英語が得意ならハイレベルな世界を眺めることは役に立つので、海外のサイトも見るようにしてください。論文は、次のようなサイトから読むことができます。
2016年から2017年にかけて、世界中で発表されたAIに関する論文の数が約4倍に増加したとの統計があります。世界規模ではそれだけ多くの研究が行われており、AI関連の論文をすべて読みこなそうというのは現実的ではありません。まずは自分の専門分野に関連する論文から読み進めることをお勧めします。最近の論文は関連するアルゴリズムのコードを公開していることも多く、GitHubからコードをフォークしてそのコードを実際に動かしてみると、より理解しやすいでしょう。「Deep Learning Weekly」や「Two Minutes Papers」「arXivTimes」もお薦めの情報ソースです。
●代表的な論文公開サイト
学会に参加してみよう
論文を一定量以上読みこなしたら、通常年1回行われる学会に出向いて聴講してみましょう。国際学会であれば世界トップの研究者たちの顔を実際に見ることができ、大きな刺激を受けることができます。
また、前述のQiitaには、「2018年の機械学習系のカンファレンスを調べてみた」などの便利なまとめ記事があります。国内であれば人工知能学会(JSAI)や情報論的学習理論(IBIS)が大きな学会です。人工知能学会には、たとえば金融であればSIG-FINという産業別分科会があります。国際学会であればNIPS、ICML、KDD、コンピュータビジョンであればCVPRなどが有名です。
その後、自分の興味がある研究室を調べるには、AINOWのAI Lab Mapが便利です。その研究室が発表している論文を読んだり、共同研究やその研究室で学ぶことを検討したりするのが良いでしょう。
キャリアゴールを決め、 「習うより慣れろ」の 精神で進もう
初級、中級、上級とレベル別にどのように勉強すべきかを見てきました。ここでは、実際に就職や転職をする際に、注意すべき点を挙げておきます。
イベントに参加し、目標となる人を見つけよう
最近では、勉強会やミートアップ、カンファレンスなど、AI関連のイベントが数多く開催されています。まずは、イベントに足を運んで参加者と交流を持ち、AI業界に関する情報を収集しましょう。
イベントでは、AI業界で活躍している企業や人物が講演をすることがあります。企業が実際にどの分野に取り組み、どのようなサービスを実現しているかといった技術的な話だけでなく、実際にどのようなやり方で仕事をしているかなど、現場での実情を聞ける良い機会です。具体的な話を聞くことで自分がどの分野を専門にしたいのか、そこで何をやりたいかを明確にすることができます。
そして、イベントの参加者や講演の登壇者の中から、自分の志望する分野や立場で働いている人を目標として定めましょう。その時点でのキャリアゴールを明確にし、目標にする人と現在の自分では何が違うのか、どれくらいの差があるかを分析することで、自分が何をすべきかが見えてきます。特に目標にする人のTwitterやFacebookで動向をつかみ、勇気を出して会いに行けば直接キャリアアドバイスを受けることができるかもしれません。AI業界の素晴らしいところは開放的なオープンイノベーションの文化です。
習うより慣れろ~とにかくコーディングしてみよう~
AIエンジニアやデータサイエンティストには、数学および数理モデルの知識が必須です。そのため、まず関連する書籍やビデオコースで学習することをお勧めしますが、その途中で挫折してしまうことがあります。初学者にありがちな誤りは、数理モデルの書籍を読んで最初から最後まで理解しようとすることです。内容が難しくなり、理解が追いつかなくなると、中途で投げ出したくなってしまいます。
そこで、書籍やビデオコースで学習しながら、数理モデルについてまだ完全に理解していなくても、まずはコーディングしてみましょう。AIでインプット・アウトプットを繰り返し、望むアウトプットが得られない状況になれば、自ずとAIモデル内のパラメータを調整したり、データの前処理を行う必要に駆られたりします。パラメータの調整のためには数理モデルの理解が必要になるので、逆引きで関連する数理モデルの理解を進めていったほうが、実装の具体例を先に見ているので理解が進みやすいといわれています。さまざまな数理モデルの試行錯誤的な実装と逆引き調査を繰り返すうちに、定番といわれる5~10種類の機械学習モデルをマスターできます。特に英語圏の人がこういったハンズオン的な効率的学習を取り入れていることが多いです。「習うより慣れろ」というのが、上級者がよく口にするアドバイスです。
理系出身者は何をすれば良い?
AIエンジニアやデータサイエンティストには数学の知識が必須です。そのため、理系の学部でも数学を専攻していた人が有利に思われます。外部からのAI職種への転職では物理学を専攻していた人がやや有利だといわれています。物理学ではコンピュータシミュレーションを数多く行うため、理論だけで済む数学以上にさまざまな実地計算を行わなければなりません。その際に、PythonやC++を使ってシミュレーションの環境を構築するため、数学の理解度とコーディングスキルのバランスが良いといわれています。
理系出身であれば、文系出身よりもプログラミングを行う機会は多いでしょう。まずはPython、そしてRのプログラミングを習得してください。余力があれば、C言語やC++にチャレンジしてみても良いでしょう。