【2022】AIプログラミングは独学可能?スクールに通うべき?適した言語・できること

AIが隆盛になり、すっかり日常になりました。AIプログラミングをしてみたいと思っている人も少なくありません。ところが、「プログラミングでさえ難しいのに、AIなんてどうやって作るの?」と思っている人は少なくないはずです。

AIプログラミングは、そんなに難しいのでしょうか?習得に時間がかかるのでしょうか?

答えは、習得はそれなりに時間がかかるけれど、習得の順番を守れば習得することができます。そして、AIプログラミングは格別に難易度が高いものでもありません。

AIプログラミングは、基礎とされる知識が少々幅広いだけで、一般のプログラミングと比べてもそれほど難しいものではありません。今回は、AIプログラミングでできることについて解説し、AIプログラミングの習得方法、習得した先に待っている世界を紹介していきます。

AI(人工知能)とは

「AI」とは、「artificial intelligence」の略です。日本語では「人工知能」と訳されます。

すでに聞いたことがあるかもしれませんが、現在のAI技術ではドラえもんは作ることはできません。ドラえもんの知能のような人間の知能を模したものを「汎化AI」と呼びますが、汎化AIはまだ作られていません(研究は進められています)。

現在存在するものは、用途を限定したAIです。「知能」とは呼ばれていますが、実際は人間の知能には程遠いものになっています。その代わり、限定された用途になら無類の強さを発揮します。また、疲れることもありません。

2017年に、将棋のAI「Ponanza」が佐藤天彦名人に勝ったニュースは記憶している方も少なくないでしょう。このように、限定された用途になら無類の強さを発揮するのが現在のAIなのです。

2022年現在、さまざまな用途のAIが開発され普及しており、もはや社会をAI抜きで語ることはできなくなっています。

AIのプログラミングで実現できることの例

それでは、AIのプログラミングでできることを4種類紹介します。幅広い事例に驚かれる方もいることでしょう。

AIは、ご自身の身近に当たり前のように存在しています。もはや、AI抜きで社会を語ることはできないのです。

株価の価格予測

従来、株価は人間のトレーダーが経験と勘で価格を予測して取引していました。ここに革命を起こしたのがAIです。

株価のように、時間の経過とともに値が変化するものを予測することを「時系列予測」と呼びますが、時系列予測はAIの研究者が研究を重ねてきた分野でした。

現在は、誰でも手軽に時系列予測ができるライブラリ(プログラムの部品)が公開されるなど、時系列予測のプログラミングがしやすくなりました。AIが予測する株価をもとに、トレーダーが売買の指示を出すことが一般的です。

時系列予測には、他にも、商店の売り上げ予測(それによって入荷量を決める)などがあります。実際に使用される用途が広い技術です。

顔認識

iPhoneをお持ちの方なら、顔認証でiPhoneのロックを解いたり、IDとパスワードの代わりに顔認証を使ったりしていることでしょう。

この顔認識も、AIの技術です。顔認証以外にも、写真アプリで目の位置を判断し、目を補正したりするのも顔認識の技術です。

テキストの自動分類

従来、アンケート調査の結果分析は人力で行っていました。文章は人間しか読めないものでした。

ところが、文章を解析するAIの登場で、この作業がAIの作業になりました。文章を解析するAIは他にも、自動翻訳にも使われています。自動翻訳の精度は、この3年で飛躍的に上がりました。

音声応答

再びiPhoneの話になりますが、「Hey, Siri!」はご存知の方が多いのではないでしょうか?iPhoneに話しかけて、したいことをしてもらっている絵はすっかり日常のものとなりました。スマートスピーカーのAlexaにも話しかけている人はいるはずです。

人間の会話の内容を認識するなど、従来のIT技術では不可能でした。ましてや、コンピュータが気の利いた返事を返すなどありませんでした。決まりきったパターンで応答するのみだったのです。

しかし、AIの登場によって、人間とコンピュータが会話することが可能になりました。インターネット上にはヒマつぶしのための会話ロボットまで公開されています。

AIの開発手順

続いては、AIを開発する手順について解説していきます。

目的や解決したい課題を決める

前述のように、現在のAIは特化されたAIです。つまり、AIで解決したい課題が存在します。

そのため、AIを開発する際も「このAIで何を解決したいのか」が出発点になります。「在庫ロスをなくすために売上予測をしたい」「アンケートの分析を省力化したいから回答文を分析させたい」といったものです。

その意味では、AIもITシステムの一種にすぎません。ITシステムはすべて、特定の目的のために開発されたものです。そんなITシステムが多数組み合わされることで、便利なIT社会が実現されているのです。

AIプログラミングの基礎を習得する

次のステップは、AIプログラミングの基礎を習得することです。AIプログラミングの基礎とは、具体的には次のものです。

  • プログラミングに使う言語の習得
  • プログラミングに使うツール(パソコン、エディタ、プログラムの実行環境など)の操作方法の習得
  • プログラミングに際する考え方の習得(大学では情報工学でプログラミングの考え方を教えます)

このうち、言語については後ほど詳しく解説します。

ツールは、現在はパソコンについてはそれほど高性能なものは要求されません。型落ちしたものなどの場合は動作が不安定になることもあるためプログラミングには向いていませんが、現在市販されている数万円のものであれば十分です。というのも、プログラムの実行環境が「クラウド」で提供されているからです。

「クラウド」とは、ネットでつながっている先のコンピュータにデータを保存したり、手元のパソコンでプログラムを実行する代わりにその遠くにあるコンピュータにプログラムを実行させたりする技術のことです。

手元のパソコンが非力でも、比較的安価に、高性能のコンピュータを「間借り」できます。その「間借り」の手間も、それほど煩雑ではありません。

エディタは、たとえばVSCode(Visual Studio Code)などが有名です。これらさえあれば、AIプログラミングを始めることができます。もちろん、ネット環境は大事です。できれば容量無制限の光回線にすることをおすすめします。

プログラミングに関する考え方は、たとえばロジックを作る際のパターンなどがあります。しかし、これらは言語を勉強する際に一緒に教えてもらえるため、初めのうちはそれで十分でしょう。

数学や統計の知識を習得する

次のステップは、数学や統計の知識を習得することです。

AIはすべて、「データをもとに学習して予想回路をAI自身が作る」ことで成り立っています。この「データ」を扱う際に、統計学が必要とされるのです。

また、統計学は数学の一分野で、数学を知らない人は統計学が理解できません。そのため、数学と統計の知識はAIプログラミングには不可欠なのです。

高校数学程度では物足りないのが現実です。理系の大学の教養課程で教えられる程度の数学力は最低必要です。

ここだけは簡単とは言い切れない部分もあるのですが、今は大学数学の平易な解説書もたくさん出ていますので、習得のハードルは昔に比べると格段に下がりました。

オリジナルのプログラムを開発する

基礎を習得したら、次は実践です。オリジナルのプログラムを開発しましょう。

GitHubに公開するのも一つの手です。そう設定すれば、世界中のエンジニアからのフィードバックを受けることもできます。

プログラミングというものは、とにかく書かないと技術が向上しません。実践あるのみです。書いて、うまく動かない部分を直して、うまく動くようにする、この繰り返しでしかプログラミングスキルは上達しません。プログラミングを学ぶ場で、講義もそこそこに実践をメインにする場が多いのはこういった理由からです。

Kaggleに参加してみる

ある程度実践経験を積んだら、Kaggleに参加してみることもおすすめです。Kaggleとは、投稿されたAIプログラミングの課題にユーザーが回答し、それが採点され、賞金がもらえるプラットフォームです。

Kaggleの流れは次のようになっています

  1. 課題投稿者はデータ及び当該課題の説明が必須である。Kaggle社は、課題作成の支援、課題構成作成、データの匿名化、当該課題への最適モデルの運用などのコンサルティングを担当する。
  2. 参加する回答者は多様な手法を試し、最適モデル構築を目指し競い合う。大抵は投稿結果が即座に(秘匿化した課題に対する提出モデルの予測精度に基づき)採点され、上位順に掲載される。
  3. 期限後、課題投稿者が提出モデルの使用にあたり永続的に取消不能である無償利用権(その中には、開発したアルゴリズム、ソフトウェア及び関連知的財産権が含まれ、”特に断りのない限り包括的”に有効。)に同意した回答者に賞金を支払う。

引用元:Wikipedia

Kaggleに参加することで、AIプログラミングの腕試しができます。うまくプログラミングできれば、賞金がもらえるかもしれないということもモチベーションになるでしょう。

何より、他の優秀な開発者のプログラムを見るまたとない機会です。技術力の向上にはまたとないプラットフォームです。

AIのプログラミングに適した言語

それでは、AIのプログラミングに適した言語を紹介していきます。

Python

Python(パイソン)は、汎用言語(何でも開発可能な言語)です。AIプログラミング以外にも、Webシステム、業務補助ツールなどに利用されています。

Pythonの強みは、データの扱いに強いことです。そのため、AIプログラミングに使われます。

また、PythonでAIを組むと、同じくPythonで組んだWebシステムとの連携が非常に取りやすくなります。そのため、Webシステム内にAIを組み込む場合などは、AIの言語としてPythonが採用されるケースが多いのです。

なお、Pythonは比較的学習が容易な言語です。

R

Rは、統計や科学技術計算に特化した言語です。そのため、AIに使われます。

特に、AIプログラミングを専門としている人にとって、Rの知識は必須です。

Matlab

Matlabは、数値解析に特化した言語です。Rと似たような目的のためにあるため、AIに活用されます。アカデミックな界隈で人気の高い言語です。

Haskell

Haskellは、上の3つの言語と異なり、「関数型プログラミング」の言語です。上の3つは「手続き型プログラミング言語」といいます。

ここでは、関数型についての詳細には説明しませんが、一言でいえば数式の連結などがわかりやすく書ける特徴があります。そのため、AIをはじめとした科学技術の分野でHaskellを使用することがあります。

ただ、関数型プログラミングは特殊な思考を必要とするため、プログラミング初心者にはややとっつきにくいことが難点です。

AIのプログラミングに関連した仕事

それでは、AIのプログラミングを習得した先に、どのような職種が待っているのでしょうか?ここでは、3つの職種を紹介します。

機械学習エンジニア

まずは機械学習エンジニアです。これは、AIのプログラミングの仕事の代表例です。

機械学習とは、AIのプログラミングでデータをAIに学習させることを指します。この機械学習の技術が2010年代にブレークスルーを起こしたことで、今日のAIの隆盛があるのです。

機械学習エンジニアは、システム開発の中で、この機械学習を担当します。AIのコアを作る要の職種といって良いでしょう。

データをAIに学習させるためのデータの整理や、AIに機械学習させるための技術要素の選定や実際の機械学習のロジックの作成など、その業務は多岐にわたります。

自分一人で完結する仕事ではなく、チームで作業することが多くなっています。その意味では、マネジメントスキルやコミュニケーションスキルも求められます。収入も高く、AIのプログラミングを習得したならやってみたい職種だといえるでしょう。

データサイエンティスト

データサイエンティストは、AIエンジニアには変わりありませんが、どちらかというとAIを使ってデータを解析し、その解析結果に基づき経営などに助言する人のことを指す場合が多いようです。コンサルタントに近い職種でもあり、高度なコミュニケーションスキルが必要とされます。

一人で全工程を担当する場合も多いため、AIプログラミングの周辺のさまざまな知識が求められ、またクライアントの業務知識も必要とされる場合があります。ただし、データサイエンティストの収入は非常に高いため、チャレンジしてみる価値のある職業です。

システムエンジニア

一般のシステムエンジニアでも、AIのプログラミングを身につけていることで仕事の幅が広がります。具体的には、AIエンジンを積んだシステムのAIとシステムの接続部分は、AIの知識がないと開発できません。

日本では、システムエンジニアとAIエンジニアがそれぞれ別個の職業として捉えられている節があり、両方の知識を持っている人材が少なめです。そのため、両方の知識を持っていれば、必ず声がかかるといえるでしょう。

単価も、一般のシステムエンジニアより高い場合が多くなっています。ご自身がエンジニアであるのであれば、AIプログラミングを身につけて仕事の幅を広げるのはキャリアプランとしてはおすすめです。

未経験からAIプログラミングをマスターすることは難しい?

AIプログラミングについて解説してきましたが、まったくの未経験からAIプログラミングを習得できるものなのでしょうか?

繰り返しになりますが、習得の順番さえ間違えなければ可能が答えだといえます。特に、数学の知識は多少習得に時間がかかるかもしれません。

しかし、習得した先には高収入の仕事が待っています。モチベーションとしては十分ではないでしょうか?

AIエンジニアの需要

AIエンジニアは、間違いなくこれからも需要が伸びます。一例を挙げてみましょう。

現状のAIでは、動画解析はできません。できないというよりも、そこまでの性能がありません。静止画解析や音声解析はできます。音声解析は、意味の解析もできるようになっています。

しかし、動画全体を解析し、意味を見出すことはまだまだ発展途上です。その分野だけで、膨大なAIエンジニアの需要があります。

また、DXの推進に伴い、企業のデータ活用は進展することはあれ後退することはないでしょう。AIエンジニアの出番はまだまだあります。特に地方や中小企業はこれからです。

したがって、AIエンジニアには需要があるといえるのです。

AIプログラミングの習得方法

最後に、AIプログラミングの習得方法について解説していきます。

独学で勉強する

ご自身がすでにエンジニアだったり、大学でプログラミングを学んでいたりする場合、独学で勉強するという方法があります。

メリットは、何といっても費用がかからないことです。ただ、独学には、継続に強靭な意思の力を必要とするという大きなデメリットがあります。質問できる相手がいないこともデメリットです。

AIプログラミングには、高度な数学の知識が必要だとお伝えしました。数学の素養を身につけることは、独学では厳しいといえるでしょう。学校教育で何年もかけて教えるような事柄を独学で学ぶというのは、大方の人にとって不可能に近いと思います。

プログラミングスクールに通う

プログラミングスクールに通うという方法です。最近は、AIプログラミングを教えるスクールや、オンラインのスクールもずいぶん増えました。

スクールだとわからない点は、先生に質問できるというメリットがあります。一方で、スクールの最大のデメリットは費用がかかることです。確かに勉強の時間は確保できますが、費用が捻出できないと現実的に無理でしょう。

セミナーを活用する

そこでおすすめしたいのが、セミナーを活用する方法です。あまり費用をかけずに、くじけるリスクを抑えながらAIプログラミングを習得することができます。

まとめ

AIプログラミングと、習得した先の世界について解説しました。

AIでできることは、日々広がりつつあります。その開発の一翼を担うのは、まさに現在の社会の一翼を担うことです。

AIプログラミングの習得は決して平易なものではないかもしれませんが、選ばれし者しかできないものでもありません。ご自身もAIプログラミングを習得し、社会に羽ばたいてみてください。

最新情報をチェックしよう!