未経験からITエンジニアへの道

AIエンジニアなるためには?業務内容と勉強すべきこと【現役エンジニア談】

先日、日本政府は2019年3月29日に人工知能(AI)の本格導入に向けたAI戦略案を発表し、各専門分野でAIを活用できる人材を年間25万人育てる目標を掲げました。

簡単にまとめると主な内容は以下の通りです。

  • 全ての高校卒業生が「理数・データサイエンス・AI」の基礎的なリテラシーを習得
  • データサイエンス・AIを理解し、各専門分野で応用できる人材を育成(約25万人/年)
  • データサイエンス・AIを駆使してイノベーションを創出し、世界で活躍できるレベルの人材の発掘・育成(約2,000人/年、そのうちトップクラス約100人/年)
  • 数理・データサイエンス・AI を育むリカレント教育をできるだけ多くの社会人に実施(女性の社会参加を促進するリカレント教育を含む)
  • 留学生がデータサイエンス・AIなどを学ぶ機会を促進

 

今後、AIに関連する事業はIT業界に限らず、どの各分野でも必要になってくることがヒシヒシと伝わってきますね。

よって、本記事では、そんなAIに関するエキスパートである「AIエンジニア」になるためのおすすめの3つの突破口をご紹介します。

スポンサーリンク

なぜAIエンジニアが注目されているか?企業がビジネスでAIを活用して得られる便利なことを理解しよう

まず簡単にAI(人工知能)の基本仕組みを理解しよう!

AI(人工知能)という言葉自体は知っている人も多い思いますが、機械学習ディープラーニング(深層学習)という言葉とよく混同しがちです。

 

以下に、相互関係性を図で説明します。

■AI、機械学習、ディープラーニング(深層学習)の違い
  • AI(人工知能)・・・人間と同様の知能を実現するための仕組みや技術の総称
  • 機械学習・・・大量データから「特徴」を掴む。「特徴」は人が定義。そして特定タスクを自動実行する仕組み。
  • ディープラーニング(深層学習)・・・マシンが自動的に「特徴」を定義

 

もう少し補足すると、これだけは頭に入れてほしいこととして、

AIとは、AIに関する技術体系の総称ということ。

 

機械学習とは、大量のデータから様々な手法で「特徴」を抽出。どの「特徴」がベストかは人が定義する。そして、特定のタスクを自動実行すること。

最後の特定タスクを自動実行という部分がないと、統計学と同じくなってしまうため、注意が必要です。この部分がロボットで自動できるというのがAI(人工知能)の特徴ですね。

 

ディープラーニングとは、機械学習の複数あるアルゴリズム手法の1つで、ニューラルネットワークを利用した方法です。「特徴」の定義をマシンが判断して自動実行できるもので、人の手がいらず、いわゆるSF映画などで出てくるAIのイメージに近いです。

 

少しわかりやすくを具体例を挙げて説明しますね。

 

AI(人工知能)とは、生まれたての赤ん坊状態では、何も役に立ちません。

そのために、これは正解/不正解の答えが含まれたデータ(教師データと呼ぶ)で、ある程度学習させることが必要です。これを学習済みAIと呼びます。

 

このAIに学習をさせることが、AIエンジニアの仕事になります

そのために、れぞれの目的に応じた必要な学習データを加工して、必要な学習アルゴリズムを選んで応じて最適な教材やデータを選んで、AIに学習させるテックニックが必要となるわけです。。これがなかなか難しいわけですね。

もう少し知りたいという方は日本AI学会があるので、こちらをご覧ください。

参考サイト:

What’s AI 人工知能学会 http://www.ai-gakkai.or.jp/whatsai/

企業がビジネスでAI(人工知能)を活用して得られる便利なこと

いま、各業界でビジネスでAI(人工知能)を活用する方法は、おおきく以下の4種類にわかれれます。

  • 予測系AI…未知のデータから未来を予測するAI
  • 識別系AI…画像や動画などAIによる識別認識をするAI
  • 会話系AI…チャットボットや自然言語対話などをするAI
  • 実行系AI…自動運転やロボット制御を行うAI

 

 予測系AI…未知のデータから未来を予測するAI

過去の実績情報を元に、将来の状態を予測するものですね。

市場の売り上げや顧客数といったマーケティングデータを予測するものが主流です。ほかには、地域の人口や天気予想など様々な対象に適用できます。

<具体例>
・過去の経営環境データから、未来の売上高や顧客数を予測
・過去の気象予報データから、将来の商品需要を予測

 

識別系AI…画像や動画などAIによる識別認識をするAI

多くのサンプリングデータをAIに学習させて、顔画像から性別や年齢を認識したり、動画から状況を認識をするもの。

実用的なものでは、防犯カメラで万引き犯ふるまいを検知して怪しい人物を摘出したり、農業などに活用して、ドローンなどで撮った画像や動画からそのときの田畑の状態を識別して収穫高を予想したりといった事例もあります。

個人的には、太陽のフレアの画像をAI分析して、地球に与える天候や災害との関連付けなんかも、興味がある分野でしたね。

 

会話系AI…チャットボットや自然言語対話などをするAI

音声や文章データをAIに学習させて、テキストでのチャット会話や、音声会話を実現するもの。

これは、既に身近な例として、チャットボットやロボットの会話で実用化されてきているため、比較的にイメージするのは簡単ですね。

「Google Home」、「LINE Clova WAVE」、「Amazon Echo」などのAIスピーカーなどもこの種類のAIに該当します。

 

実行系AI…自動運転やロボット制御を行うAI

画像や音声などのセンサーから得られる情報をもとに、自動制御を行うもの。

具体例としては、最近の自動車で、車間距離などを一定に保って自動運転するモノがありましたね。それがこの分類に当てはまります。

 

そのほか、工場などのロボットで自動制御する部分にAIが利用されてます。

例えば、生産ラインにカメラを設置して、不良部品ロッドを画像処理から判別して、不良ロッドは廃棄するという事例があります。

これによって、組み立てられた製品全体の品質を確保するだけでなく、製造後の検査工程の作業工数を大幅に削減するといった高いメリットがあります。

難関AIエンジニアの具体的な仕事内容は4つのプロセスにある

実際にAIエンジニアの実際の仕事内容とは以下の内容です。

  • 業務コンサルタントとしてAI導入の実現性とROI検討を顧客と一緒に進める
  • 検討フェーズでは、導入効果や仮説の立案がメイン
  • PoC(Proof of Concept)を顧客と一緒に進める
  • 評価結果の分析や改善などPDCAサイクルをまわす

基本的には上記を進めながら、実際のAI導入のスコープや導入時期、予算化を検討し、経営層からGoサインが出たら、本格開発を始めるという流れです。

また、開発中も仮説の裏付け検証なども並行しつつ、仕様変更をしながら進めます。

アジャイル開発手法に近いやり方で、目標(ゴール)を意識して開発プロジェクトを進めますが、このときAIエンジニアは開発のコアメンバーとして、技術面でサポートする大事な役割を担当します。

 

実際に、AIエンジニアとしての技術力が顧客から期待され、且つ難易度が高い部分はPoC(Proof of Concept)の段階です。

AIエンジニアになるためには、この部分の仕事内容をしっかり把握しておく必要がありますので、そちらを詳しく説明したいと思います。

AIエンジニアにとって主要な仕事となるPoC(Proof of Concept)の仕事内容とは?

通常ビジネスで、顧客と一緒に進めることになるPoC(Proof of Concept)では、以下の3段階(フェーズ)で実施することが一般的です。

上記の図は、検索エンジンや自然言語対話などをする会話系AIを想定した場合のものです。(ただし、予測系AI、識別AI、実行AIでも作業の流れはほぼ同様です)

主に、AIエンジニアはそれぞれの流れで以下の作業を実施します。

  1. データ加工
  2. 学習
  3. 検証
  4. 見直し

上記①~④を繰り返し行い、モデル・データ加工方法を確立させることが目的ですね。

そのうち、実際の作業時間の大部分は「①データ加工」「④見直し」であり、ここが非常に重要な肝パートになります

 

では、順番にそれぞれの仕事内容をご説明します。

①データ加工プロセス

まず、インターネット上のデータであれば、「クローリング・スクレイピング」処理によって、HTMLソースの収集とノイズ(タグや記号等)の除去を行い、加工前データを作成します。

これは、Google Chrome Extensions「WebScraper」などでも簡単にできるため、
さほど作業時間は掛かりません。

次に「データ加工」として、主に以下のような作業で実施します。

ヘッダ削除
フッタ削除
不要文字削除
わかち書き
見出し語化変換
終止形変換
フレーズ作成

識別AIなどで必要な前処理
日付変換
ワンホットエンコーディング
「入力値なし」の変換
不要なカラムの除外
データの標準化

②学習プロセス

学習は、「機械学習」「ディープラーニング(=深層学習)」に分けられます。

機械学習

pythonライブラリgensimの「Doc2vec」を使用して、Doc2vecので学習を実施ます。

ここでは、いくつかのパラメータを変更して学習させます。

また、アルゴリズム選定は時間が掛かるものではないため、
実際の開発では複数パターン試して評価することが多いです。

 

次に、機械学習で使用されるアルゴリズムの種類をご紹介します。

機械学習で使用される主なアルゴリズムの種類
– 決定木
– ランダムフォレスト
– ロジスティック回帰
– サポートベクターマシン(SVM)
– ナイーブベイズ分類器
– k近傍法
– k平均法
– アダブースト
– ニューラルネットワーク ⇐ ディープラーニング(後述します)
– マルコフ連鎖

 

そのほかに以下のような作業を実施します。

  • 教師データを付けて、モデルを加える。
  • 交差検定を取り入れる

 

テストデータを用意することが困難な場合、
交差検定という手法を実施します。
具体的には、K分割して、1つをテストデータにして、
残りを学習データとして、精度評価を行います。

 

ディープラーニング

ニューラルネットワークのアルゴリズムを使用します。

ニューラルネットワークは、「入力層」、「隠れ層」、「出力層」と各層を持ち、
各層は複数の「ノード(もしくはユニット)」が「エッジ」で結ばれる構造です。

各層は「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持つことができます。

この隠れ層は複数の層を持つことができ、特に深い隠れ層を持つものを
深層学習(ディープラーニング)と呼んでいます。

 

ディープラーニングには、いくつかのモデルがあります。これらから選定することになりますが、最新はLSTMGANになります。

・CNN、RNN

CNNが扱う画像データは二次元の矩形データでしたが、音声データは可変長の時系列データです。この可変長データをニューラルネットワークで扱うため、隠れ層の値を再び隠れ層に入力するというネットワーク構造にしたのが、RNN(Recurrent Neural Network)です。

・LSTM(Long Short-Term Memory)

LSTM(Long Short-Term Memory)はRNNの欠点を解消し、長期の時系列データを学習することができる強力なモデルです。

・GAN(Generative Adversarial Network)

最新の生成モデルであるGAN(Generative Adversarial Network)は、非常に注目を集めている手法です。

③評価プロセスと④見直しプロセス

モデルでのテスト結果を確認します。

検索エンジンなら期待する検索結果が上位に来ること、
会話AIなら、期待する会話応答となるかを確認します。

スポンサーリンク

AIエンジニアの平均年収は500万~800万が現実ライン

2019年4月現在の日本内求人サイト情報では、AIエンジニアの予想年収は500万~1400万円程度となってます。

実際の分布としては、500万~800万円付近が多いようです。

 

 

難関のわりには、IT業界のブロックチェーンエンジアやRPAエンジニアに比べると、それほど高くはないな?とも感じますね。

その理由は、現段階でAI自体がトライアルとして、研究段階に近く、まだまだ事業ビジネス(ROI:投資利益率)に還元される結果となっていないためでしょう。

近年のうちに、平均給与は平均800万~1000万ぐらいになると予想してます。

AIエンジニアになるには?おすすめする3つの突破口

 

方法1.未経験なら狙うポジションは営業と技術の間:プレSE

AIエンジニアで狙うポジションは、顧客接点となる営業でも、バックグランドでプログラミングをバリバリやる開発でもなく、プレSEと呼ばれる、営業と開発の中間を狙いましょう。

主な仕事は、

  • 営業と一緒に顧客に同行し、AIについて事例説明する
  • 詳しいプログラム知識や専門用語は必要ない(なぜなら顧客もわからないから)
  • それらを分かりやすくための資料作成や説明をすることが仕事

よって、最初の入り口として、入りやすいというメリットがあります。

方法2.間接的でも良いからビックデータに近い職種から攻める

いま、IT業界などでビッグデータを多く扱う仕事なら、ほぼ確実にAI関連する業務となっています。

まずは、IT業界もしくはその他業界でも、ビッグデータを扱う業種を選びつつ、それらに触れることをおすすめします。

【IT転職サイト比較】本気で時間とやる気を無駄にしないための完全活用方法『おすすめ厳選9選』 今や数多くある転職サイトや転職エージェント。ただ、選び方を失敗するとその分の「活動時間」と「モチベーション」が非常に無駄になってしま...

方法3.基礎知識を習得するには展示会が最もおすすめ

セミナー、本があるが、もっともおすすめは展示会です。

なぜなら、事例含めてすべて見ることができるためです。

 

活用事例や最先端技術も含め、一気に情報収集できます。

春と秋の国際展示場で開催されるイベントが最もおすすめです。

第3回 AI・人工知能EXPO | 4/3(水)~5(金)開催

2019年 IoT/AI関連展示会・イベント一覧

AIエンジニアになるにはプログラミング言語知識は必須【未経験ならPythonが最もおすすめ】

結論を言うと、バリバリ(何千~何万ステップ)のソースコーディング技術は必要ありません!

ただし、変数定義は必須。プログラミング初歩レベルの構文や戻り値などの知識も必須です。

もし、プログラミング言語をこれから勉強するなら、機械学習に適したPython(パイソン)の勉強をすることを一番におすすめします。

 

以下に、AIエンジニアに向いている主要なプログラミングを5つご紹介します。

AIエンジニア向け主要プログラミング言語おすすめ5選

1. Python(パイソン)

Pythonは現在の機械学習、科学計算の分野で最もシェアを獲得している言語
スクリプト言語

2. R言語

R言語は統計解析向けのプログラミング言語
データの解析、AIの特化したシステム

3 Julia(ジュリア)

Julia(ジュリア)は、近年急速に注目を集めています。
JITコンパイラと呼ばれる技術を使っているお陰で、スクリプト言語でありながらCに並ぶ高速動作を可能としています。
PythonやR言語もシンプルで使いやすいですが、Juliaは後発であるため、今までに公開されてきた様々な言語の良いところを取り込んでいます。

4. JavaScript(ジャバスクリプト)

JavaScript(ジャバスクリプト)
AI(機械学習)をWebブラウザから使うためのライブラリが公開
WebGLという技術でブラウザからGPUを使うことができます。学習済みの機械学習モデルをブラウザで使う時に、非常に便利です。
Keras.js
deeplearn.js
TensorFlow.js
これらの3つです。

5. C++(シープラスプラス)

Pythonなどのスクリプト言語で、どうしても高速化が難しい部分はC++を使うことになります。

AIエンジニアのスペシャリストになるには数学的知識も必要【覚えるべきアルゴリズム10】

こちらは、必須です。

さきほど、AIエンジニアの作業の多くは、「データ加工」と「検証」とお伝えしましたが、そのためには下記の知識が必須となるためです。

アルゴリズムの種類

– 決定木
– ランダムフォレスト
– ロジスティック回帰
– サポートベクターマシン(SVM)
– ナイーブベイズ分類器
– k近傍法
– k平均法
– アダブースト
– ニューラルネットワーク
– マルコフ連鎖

理由は、これらの特徴やデメリットをしっかり学習して、あなたが教師として、AI(人工知能)に学習させてあげることがひつようになってくるためです。

最後に

AI戦略でも発表された方針通り、今後ますます、若手新入社員や海外からの労働者によって、AI分野は伸びていきます。

その時代に取り残されないよう今のうちから、AIについては触れていくことをおすすめします。

 

今年も全国各地でAIに関する展示化やセミナーなども多く開催されますので、時間が許す限りぜひ参加してみてはいかがでしょうか。

第3回 AI・人工知能EXPO | 4/3(水)~5(金)開催

2019年 IoT/AI関連展示会・イベント一覧

 

ちなみに、AI・人工知能EXPOは毎年私も行ってます。

ーーーーーーーーーーーーーー

本記事に関する、疑問や質問等、何かあれば問い合わせフォームでご連絡ください。





ABOUT ME
teruya
テルル@のっぽパパ。 総合メディア『BenTen』副代表。 デジタルメディアのコンサル&マーケター兼任。 メインは某IT企業で開発プロジェクトマネージャー。 大小問わず数多くの開発プロジェクトに関わり、 数百人のITエンジニアと面談などを経験。 現在はUXデザインと機械学習に没頭してます。 疑問や質問等、何かあれば、 お気軽にDMください。twitter: のっぽパパ@ ◆ガジェット、節約、お役立ち https://stepmamapapa.com ◆孫活 https://magokatsu.com