機械学習やらディープラーニングやら、「AI」が脚光を浴びていますね。
これからプログラミングを始める人や、将来プログラマーを目指そうとしている人は、「AI」のプログラミングについて多少なりとも興味があるのではないでしょうか?
APはPythonというプログラミング言語が使われているから、Pythonを勉強すればいいんだ!
Pythonで自由にプログラミングできたら、AIプログラマーになれるんだ!
なんて思っている人がいたら、それは大きな誤解です。
今回は、一般的なプログラマーとAIプログラマーの違いを明確にして、AIプログラマーがどのようなものかを解説したいと思います。
プログラマーの定義

一般でいうプログラマーとは、システム開発において設計書に記載されている仕様を満たすプログラムを、プログラミング言語を用いて作り上げていくものです。
要件定義ー基本設計ー詳細設計ープログラミングー単体テストー結合テストー総合テストー納品
という過程の中で、主にプログラミングと単体テストを担当し、システムエンジニアとの仕事上の役割が明確です。
プログラムを作るというのが主な仕事であり、設計書に従って動くものを作るというのがミッションになります。
AIプログラマーは存在しない理由

一方AIプログラマーとはとんな仕事をするのでしょう?
プログラマーの定義から考えると、AIを作るための設計書があって、その設計書に従ってプログラムを作成して、テストする・・・という仕事を想像しますよね?
しかし、そこには大きな違いがあります。
AI開発は、システム開発の様な「システムエンジニア」と「プログラマー」の境界線が無く、プログラムだけを作る専門の職業が存在しないという点です。
では、それは一体どうしてなのでしょう?
トライ&エラーの要素が多く、設計書が作りにくい
AIを開発する場合、その目的と学習に使うデータの特性に応じて、データ加工の方法やAIアルゴリズムを選択する必要があります。
もちろん定番とかセオリーといったものは存在しますが、AIに学習させるデータは千差万別であるため、その時々に応じてプログラムを変える必要があります。
例えば、ある食品メーカーにおけるお菓子の製造ラインでは、生産時の炉の温度や気温、材料の量、ベルトコンベヤーの移動速度など、合計50種類の項目を持つデータが500万件蓄積されていたとします。
この生産現場で不良品の発生を予知するAIを開発する場合を考えてみましょう。
まず500万件のデータに対してデータを加工するわけですが、もし一部の項目が欠落していた場合、それらを全て捨てるか、何らかの法則で欠落部分を補完しなければなりません。
補完するにもいくつか方法があり、例えば無条件に0で埋める、直前の値で埋める、前後の平均で埋めるなどの方法が考えられます。
また、既存の項目だけを使うのではなく、特定の項目について2乗または3乗の値を計算したり、統計情報(平均、合計、分散、標準偏差など)を新たな項目として追加するなどもよく行われます。
データの加工が完了したら、次はアルゴリズムを選定するのですが、不良品の発生を予測するアルゴリズムも複数あって、それぞれにメリット/デメリット、得意/不得意が存在します。
これらの加工方法やアルゴリズムはどれが正解というわけではなく、特に最初の段階では、ある程度良い結果が得られるまでトライ&エラーの試行錯誤が発生するため、まとまった設計書を作成することができません。
むしろ設計書を書くより、実際に手を動かしてプログラムを修正していく方が効率的なのです。
AIエンジニアとしてのスキルが必要

プログラマーは自分が作るものを理解しておかないと当然プログラミングなんでできませんよね。
プログラマーは設計書という形で作るものが提示されていましたが、AIのプログラミングは試行錯誤から始まるため設計書が作れません。
ということは、データの加工方法の種類やアルゴリズムに関するメリット/デメリットや得意/不得意などを理解しておかないとプログラミングできません。
これって、プログラマーではなくAIエンジニアの世界なのです。
AIエンジニアとは、企業が抱える課題や問題に対して、AIの構築を通して課題解決を行う専門家です。
データサイエンティストは、「データ分析を通してビジネス課題を解決する」という大きな役割を持っていますが、AIエンジニアはその中の「AIを構築する」という部分に重点が置かれています。
つまり、AIのプログラミングにおいては、データの選定→データの加工→AIの構築という一連の作業を行えるAIエンジニアのスキルが必要不可欠なんです。
プログラミングはAI構築における一つの作業
AI構築において、プログラミングはAIエンジニアがデータを加工したりアルゴリズムを実行する1つの手段でしかありません。
そして、その際によく使われている開発言語がPythonなだけです。
Python以外にもR言語を使ったり、時にはMATLABなどのパッケージソフトを使うこともあります。
システム開発の場合、プログラマーにとってはプログラムを作ることが目的になりますが、AI構築の場合はデータ加工やアルゴリズムの実行が目的になります。
つまり、プログラミングはEXCELやWORDのような位置付けなのです。
今から何十年も昔の時代は手書きが主流で、ワープロという専用機にキーパンチャーが文字を打ち込むという作業が当たり前でしたが、今はだれでもパソコンを使って文書を作成できます。
AIも同じで、今はスキルさえあれば誰でも無料でPythonを使えます。
さらにAI構築では、データ加工やアルゴリズム実行という自分にとって必要な処理を実行できれば良く、業務アプリの様に利用者の操作性やエラー処理を詳細に考える必要は全くないので、なおさら気軽にプログラミングできます。
ですから、AI構築にとって専属のプログラマーというものは必要ないのです。
目指すべきはAIエンジニア

ここまで読んでいただければ、AIプログラマーが存在しない理由は分かっていただけたと思います。
そして、目指すのであれば「AIエンジニア」です。
AIエンジニアも人材不足
経済産業省委託事業の委託事業として2019年3月にみずほ情報総研株式会社がまとめたAI人材の需要ギャップ調査によると、AI関連で0.7%生産性が向上したと仮定しても、2030年には12万3千人の人材不足に陥るようです。

AIエンジニアの年収は?
求人ボックス給料ナビというサイトに、AIエンジニアの平均年収が掲載されていたので紹介します。
正社員で599万円という高い給与体系になっていますね。
厚生労働省「賃金構造基本統計調査」によると、システムエンジニアの平均が566万円なので、それより33万円も高い収入です。

AIエンジニアに必要なスキルは?

AIエンジニアを目指すうえで、現場視点で考えた場合のスキルと、巷では必須と言われているスキルについて内容をまとめてみました。
巷では高度な数学知識が必要と書かれていることも多いですが、実際はライブラリの使い方とアルゴリズムの特徴さえ把握していればAI構築は可能です。
というか、AI構築するのにいちいち原理となる数式なんて使うわけがありません。
数学アレルギーは困りものですが、複雑な数式を見て理解できなくても読み飛ばせる力があれば十分です。
身に着けておくべき知識
スキルの分野 | 解説 |
---|---|
AIアルゴリズムの知識 | 機械学習全般に関する知識。よく使われる機械学習アルゴリズムについては、その特徴や用途を理解しておく必要あり。 |
プログラミング知識 | 主にPythonに関するプログラミング知識、及び機械学習や可視化に関するライブラリの使い方など。データベースからデータを抽出することもあるので、SQLについての知識も必要。 |
統計学の基礎知識 | それほど高度なものは要求されないが、基本的な知識(平均、中央値、分散、標準偏差、正規分布、など)については理解しておく必要あり。 |
世間で思われているほど必要じゃない知識
高度な数学の知識 | アルゴリズムの説明に数式は登場するが、理解する必要が無いケースがほとんど。 微分積分や線形代数などはアルゴリズムを真剣に理解するには必要だが、使う上においてはほぼ関係ない。車のエンジンが設計できなくても、車が運転できるのと同じ。 |
英語力 | 最先端のアルゴリズムを取り入れたり、論文を読み解くには英語力は必要だが、一般的によく使われているアルゴリズムは日本語の解説が十分そろっている。 |
AIエンジニアを目指すには

自力で勉強できるなら、それが一番安上がりです。
今はYouTubeやWebサイトに数多くの情報が公開されています。
これらを使って勉強するだけで、十分AIエンジニアの素養は身に付きます。
もしあなたが18歳~30歳くらいの若さであり、AIに興味を持っていて多くの時間を注ぎ込めるのであれば、十分独学でスキルを身に着けることが可能です。
逆に、もしあなたが30歳を超えてしまっているとか、AIに興味はあるけど時間が無いとか、独学だとつらいと考えているのであれば、セミナーを受講するのが良いと思います。
最近はAIスクールの数も増えて低価格から勉強できるようになりました。
どのスクールも無料コンサルを受け付けており、気軽に相談できるようになっています。
まずは第一歩として、問い合わせてみてはいかがでしょう?
スクール名 | コース | 金額 |
---|---|---|
AI Academy | Pythonプログラミング入門コース データサイエンティストコース 機械学習エンジニアコース | Pythonプログラミング入門コース 50,000円(税込) データサイエンティストコース 120,000円(税込) 機械学習エンジニアコース 120,000円(税込) |
AIジョブカレPRO | 機械学習講座 ディープラーニング講座 | 機械学習講座 120,000円(税別) ディープラーニング講座 139,800円(税別) |
Techアカデミー | AIコース | 4週間プラン 139,000円 8週間プラン 189,000円 12週間プラン 239,000円 16週間プラン 289,000円 |
Winスクール | Pythonプログラミング AIプログラミング実習 AIプログラミング入門 | Pythonプログラミング 154,000円(税抜) AIプログラミング実習 158,000円(税抜) AIプログラミング入門 72,000円(税抜) |
スキルアップAI | 現場で使える機械学習・データ分析基礎講座 現場で使えるディープラーニング基礎講座 | 現場で使える機械学習・データ分析基礎講座 160,000円(税別) 現場で使えるディープラーニング基礎講座 298,000円(税別) |
CodeCamp | Pythonデータサイエンスコース | 受講料金 148,000円(税抜) 入学金 30,000円(税抜) |
DIVE INTO CODE | 機械学習エンジニアコース | 入会金:181,819円(税抜) 受講料:798,000円(税抜) |
TECH::CAMP | AI(人工知能)入門 | 月額料金 19,800円 入会費用 198,000円 |
Aidemy Premium Plan | AIアプリ開発コース データ分析コース 自然言語処理コース LINEチャットボット開発コース | 3ヶ月プラン 480,000円 6ヶ月プラン 780,000円 9ヶ月プラン 980,000円 |
侍エンジニア塾 | AIコース | アドバンスプラン 580,000円(税抜) エキスパートプラン 980,000円(税抜) 入学金 29,800円(税抜) |
AIの登場でAIエンジニアは消える?

個人的な見解ですが、2045年のシンギュラリティが実際に起きたら、AIエンジニアは消えていくのかもしれません。
消えていくというより、AIのお世話をするための仕事をすることになるかも。
AIエンジニアが頑張って良いAIを作るほど、AIエンジニアの仕事を奪っていくのではないかという意見がります。
遠い昔、大型コンピュータ(ホストコンピュータ)が全盛期だった時代、パーソナルコンピュータ(パソコン)が登場して分散化が進みました。
分散化とは、大型コンピュータのプログラムをパソコンで動かせるように移植するという作業です。
昔は大企業に1台大型コンピュータが設置されていましたが、分散化で次々に消えて今日に至ります。
世の中から大型コンピュータ(スーパーコンピュータは除く)は淘汰されましたが、プログラマーは今も存在していていますよね。
つまり、シンギュラリティが起きたとしても、おそらくAIエンジニアは形を変えて存続してるのではないかと思います。
そして、確かのは、ここ20年くらいは確実にAIエンジニアの需要があるということです。
まとめ
Google検索で「AIプログラマ」というキーワードが検索されていますが、実際に「AIプログラマ」という職業は存在せず、AIエンジニアが作業の一環としてPython等のプログラミング言語でプログラミングするのが実態です。
システム開発とはまた異なったスキルが必要になりますが、システムエンジニアより高い給料が望めますし、何より今脚光を浴びている技術でもあります。
もし「AIプログラマ」を目指すのであれば、是非AIエンジニアを目指してください。
独学できない場合は有料スクールの活用がおすすめです。
自分への投資は、将来必ず自分に返ってきます。
低価格のコースも登場していますので、一度問い合わせてみてはいかがでしょう?