AIエンジニアについて学ぼう
昨今のIT技術革新の中核ともいえる、人工知能の開発に携わるAIエンジニアとは一体どういう存在なのでしょうか。
エンジニアとしてだけではなく研究者としての側面もイメージしながら概観してみましょう。
AIエンジニアとは
『AIエンジニア』とは人間の脳機能を模擬する「AI(人工知能)」に、適切な「アルゴリズム(思考法)」と「データ(世界に関する知識)」を与える仕事です。
そして、認識・推論・言語運用・創造といった人間にしかできなかった知的活動を機械的に実行させる研究者・技術者・トレーナーを指します。
例えば、チェス王者に勝利したディープ・ブルーや完全自動運転車を目指すWaymo、あるいはボストン・ダイナミクス社の2足歩行人型ロボットなどの開発にAIエンジニアが携わっています。
AIエンジニアが求められる背景
AIエンジニアはビジネスの現場で需要過多とはいえ、エンジニア職の中でも特に求められている人材と言えます。しかしこれはなぜなのでしょうか。理由を探ってみましょう。
人材不足
AIは「学習する機械」であり、これまで人間が行っていた仕事の代理をしばしば人間以上の効率でこなせる上、その応用範囲は非常に多岐に渡ります。
またAIは、遺伝子工学や金融工学にも応用でき、市場競争力を高めようとする先進的な企業はAIエンジニアを求めているのです。
しかし、AIエンジニアは日本ではまだその総数が少ないため、需要の高まりに対して供給が追いついていません。つまり現在では必要とされている求人の一つであるにもかかわらず、圧倒的に人手が不足している状況と言えます。
世界で通用する
成長を遂げ世界的に注目を浴びる企業はIT技術を活用し、特にAIを用いて独自性のあるプロダクトをリリースしているケースが多くあります。
例えば、ドローンで有名な企業や電気自動車の企業がそれにあたり、世界をリードする企業にはAI活用があり、AIエンジニアが開発を担っているのです。
従来の機械工学・情報工学的手法では対処できなかった問題をAIが解決できるケースが増えており、この技術者を求める企業は無数に存在します。
また企業が提示する報酬額が文字通り桁違いであるケースも稀ではありません。
専門性が高い
これは人手不足の大きな一因でもありますが、AIエンジニアは高度な知識と技術が要される専門性の高い職業です。
Pythonを用いたコーディングスキル、機械学習ライブラリ・フレームワークの運用能力、ロジスティック回帰などのビッグデータ解析に関する知識・スキル、線形代数・微積分・確率論といった数学的知識や統計学の知識などがあります。
ざっと挙げてもこれだけの能力が最低限必要です。
これらを備えた即戦力としてのAIエンジニアはまだ日本に多くありませんので、企業の人材獲得競争の中で報酬額も吊り上げられていくと言えるでしょう。
AIエンジニアに必要なスキル
AIエンジニアには修士以上の学識を求められることが一般的で、必要なスキルは多岐に渡ります。その中で基礎的なものを一部紹介します。
機械学習の基礎知識
『機械学習』とは、人間の「学習」に相当する機能を機械(コンピュータ)で実現する技術・手法の総称です。学習はAIの基礎的な能力ですので、どのAIにも必ず何らかの機械学習システムが実装されています。
しかしゼロからAI開発を行うことは通常行われません。
研究機関はともかく、ビジネスの現場で目的に従うAI開発を行うには、『機械学習ライブラリ』(汎用性の高いプログラムの集合体)や『深層学習フレームワーク』(AI開発に必要な機能を組み合わせて作ったAIのひな型)を活用することになります。
これらはオープンソースで公開されているものも多いようです。そのため適切なライブラリやフレームワークを選択して骨組みを作ることが基本となっています。
プログラミング言語Pythonを扱える
ライブラリやフレームワークを使うとしても、独自のAIを構築するにはコーディングスキルが必要になります。
これらのひな形で用いられ、AI開発の現場で必須とされている言語がPythonです。コーディングを行うだけでなく、機械学習の理解、コードの解析を行う上でもPythonが使えないと支障がでますので、機械学習とPythonはセットとして学習を進めましょう。
またTensorFlowやpandasなども使えると実装できる機能の幅が広がりますので、言語は複数使えることが好ましいと言えます。
データ解析に知見がある
機械学習のアルゴリズムは大別して『教師あり学習』『教師なし学習』または『強化学習』などがありますが、いずれにおいてもビッグデータやデータベースを扱い、AIを教育したりAIに自ら知識発見させることになります。
ここでAIにどのように教えるのか、どのように発見させるのかを洗練させていくためには、AIエンジニアにデータ解析の知見が必要です。また、データ解析を理解・運用するには数学や統計学の知識とセンスが求められます。
AIエンジニアになるには
AIエンジニアになるにはデータサイエンティストとしての基盤が必要であることを意識しておきましょう。
AIエンジニアはプログラミングも行う研究者のような存在です。コーディングスキルだけではなく、学識とセンスを得ることを考えていきましょう。
大学、大学院で学ぶ
グローバルな傾向として、実際にAIエンジニアとしてキャリア形成している人材の多くは、情報科学(コンピュータサイエンス)の修士・博士課程を修了した後に就職している傾向があります。
既に一度大学を卒業しているなら、国内の情報科学修士・博士課程に進むことも考えられますし、米国コンピュータサイエンス学部の修士・博士課程を修了すれば優遇されるでしょう。
学士の新卒で受け入れ先があれば幸運ですが、マスター以上の深い学識が求められているという認識を持っておく必要があります。
書籍で独学する
現場でエンジニアとしてキャリア形成している人で、AIエンジニアに求められる条件を一定程度クリアしているなら書籍で不足分を補うことも考えられます。
特に実務でPythonを使用しているなら、機械学習や統計学について書籍で知識を補完していくことは比較的容易と言えるかもしれません。
なお、上述の通りAI開発に用いられるライブラリやフレームワークはオープンソースで公開してありますので、実際にこれを運用しながらAI構築を実践できればスキルの証明手段として有効と言えるのではないでしょうか。
未経験でも可能なプログラミングスクール
Pythonでの実装経験がなく、また学位や職種が畑違いであっても、AIエンジニアとして就職・転職する方法はあります。
AIに特化したプログラミングスクール、というのがありますので、これに通って実務可能な知識とスキルを磨いていくという形です。
コーディングスキルだけではAIエンジニアにはなれませんが、データサイエンスの専門家のアドバイスも受けやすいスクールで学べるなら可能性が高まるでしょう。
また、並行して専門書にあたって学識を深める努力も惜しまないことが重要です。
まとめ
AIは従来のコンピュータで実現できない計算を行う新規な機械を研究する中で生まれたものです。
研究結果は誰もが利用しやすいようオープンソースで公開されているとはいえ、AIエンジニアの仕事には情報科学の研究者相当かそれに準ずる学識が求められます。
ただそれだけにAI活用の恩恵は大きいと言えます。AIエンジニアとして仕事をするということは、携わるプロジェクトによっては社会構造を書き換える仕事に従事するということにもなるでしょう。