最大数万円お得になるセール情報まとめ ≫

AI・人工知能プログラミングについて【初心者向け】

AI・人工知能

どうも、パソコンブロガーのケンさん(@pasolog_ken)です。

  • プログラミングでAI・人工知能を作ってみたい!
  • 何だか難しそうだけど、素人でもできるの?
  • プログラミング言語や開発環境は何を使えば良いの?

AI 人工知能のプログラミングに興味があるが、どういうプログラミング言語・開発環境を使えばいいか分からない、そもそもAIや人工知能とは何なのか、難しそうだが素人でもプログラミングできるものなのかなど基本的なところも含めて解説していきます。

 

私は趣味で、ディープラーニング・遺伝的アルゴリズムなどのAIを使って、株式・FX売買ができないか取り組んだ経験があるので、その過程でAIについて勉強したことやプログラミングについて紹介できればと思います。

ケンさん

まぁ、AIで利益をあげたかどうかは別やけどな…

 

この記事の著者

パソコンブロガー ケンさん

PC歴20年/自作,プログラミング歴10年、文系新卒でSEとしてIT企業に入り、スマホアプリ/Windowsアプリ開発に携わる。 ハード,ソフト面で長年の知識,経験を元に初心者向けにPCを解説 詳細プロフィール

AI・人工知能プログラミングとは?

AI・人工知能

人工知能と聞くと「何でも AI が問題を解決してくれる」と万能なイメージを持っている方が多いと思いますが、実際はそのようなことはありません。

 

AI 人工知能と聞くとSF映画のターミネータードラえもんなどの自律的に動くロボットのイメージがあると思います。

しかし、このように自律的に自分で物事を考え、その場の状況に合わせて行動するようなAIは作れません。

 

そもそもAI・人工知能って何?

AI・人工知能は、分類の一つとして次の2つがあります。

  • 強いAI
  • 弱いAI

 

強いAIは、人間のように、その場の状況や目的に合わせて、自律的に物事を考え行動するAIのことです。

人間のような認知機能があり、幅広い知識や経験を元に、自意識を持ち行動を選択します。

 

例えば、ターミネーターやドラえもんなどのロボットが強いAIにあたります。

どちらも、最終的に果たすべき目的があり、その目的に合わせて自律的に物事を考え、行動しています。

 

ロボットのようなハードウェア(腕・足・目・耳など)が備わっていれば行動することができますが、ハードウェアが無い場合は、コンピュータ内や接続されているネットワーク内のコンピュータを自律的に考え制御します。

よくSF映画などで、コンピュータのAIに向かって話しかけているシーンがありますが、それですね。

 

一方で、弱いAIは、自律的に物事を考えることを必要としない程度の問題解決や推論を行うAIのことです。

自律的に物事を考えることをしないため、プログラムされていない想定外の状況には対応できません。

 

例えば、自動運転や囲碁のAlphaGo、Alexa・Siri・Cortanaなどの音声認識などが弱いAIにあたります。

一部の問題解決にのみに使えるもので、人の行動や仕事の一部分を今までのデータを学習することで、人間と同等、あるいはそれ以上の精度で、AIが解決してくれます。

 

現状、強いAIについては実現できません。

強いAIについて研究している大学・研究所などはあると思いますが、少なくとも一般的なプログラマー、エンジニアが手軽に作れる範囲ではありません。

 

しかし、弱いAIについては、一般的なプログラマー・エンジニアでも作ることができます。

書籍やネットなどの情報も多く、ライブラリも豊富に揃っており、手軽に開発できる環境が整っているので、比較的簡単に作ることができます。

 

普通であれば、AIの一種であるディープラーニングでは、微分、線形代数、統計学と言った専門的な数学の知識が必要になってきます。

しかし、このような高度な数学知識を必要とする部分は、ライブラリを組み込むことで詳しく知らなくてもAIを開発できます。

 

ケンさん

ちなみに俺は文系卒で、微分、線形代数、統計学は知らんで!

 

とは言え、ライブラリを使って簡単になると言っても、AIがどういう仕組みで動いているか勉強しておかないと、どういうAIを作れば良いのか、どういうバラメーターを使って、設定すれば良いのか分からないので、普通のプログラミングよりは難しいですね。

 

AIプログラミングに必要なパソコンスペック

AIの学習って、すごい高スペックなパソコンがいりそう…

これからAIについて勉強する方であれば、それほど高いスペックのパソコンは必要ありません。

AIの勉強、実際に商品やサービスに搭載されるAIのアルゴリズムをどうするか検証・テストする程度であれば、高スペックなパソコンは必要無く、ミドルレンジ程度スペックで十分です。

 

参考までに、ミドルレンジの大体のスペックは次の通りです。

CPU:Intel Core i3, i5, AMD Ryzen 3, 5

メモリ:8GB, 16GB

GPU:搭載してもしなくてもOK

ストレージ:SSD 512GB

価格帯で言うと、10万~20万前後になってきます。

 

また、学習のためのデータ量が多かったり、学習時間が長い、または本番環境で使うような場合は、ハイエンドなパソコンが良いでしょう。

 

≫ 関連記事:ディープラーニング・機械学習に必要なPCスペックとおすすめBTOパソコンを解説!

 

 

AI・人工知能の例

AIが使われている例をいくつか紹介します。

AIと言っても様々なアルゴリズムがあり、その代表的なものがディープラーニング、遺伝的アルゴリズムです。

ディープラーニング:状況判断や画像認識

遺伝的アルゴリズム:膨大な組み合わせの中から良い結果を探すことができる

一般的には、自動運転の画像認識や状況に合わせた判断、顔認証、工場ラインの検品はディープラーニングが使われます。

数百件~数十万件の正常・異常な場合のデータを集め、ディープラーニングで学習させることで、新たなデータが正常か、異常かを判断することができます。

 

また、新幹線のN700系の先端部分の形状や人工衛星のアンテナの設計は、遺伝的アルゴリズムが使われています。

遺伝的アルゴリズムは、生物が親世代から遺伝子を受け継ぎ環境に適用できるように進化してきた仕組みを使って、膨大な組み合わせの中から良い結果を探すことができます。

 

ケンさん

俺も実際に両方試したけど奥が深いで!

 

 

AI・人工知能のプログラミング言語と環境

AIの主なプログラミング言語と開発環境は次の通りです。

  • Python(Anaconda)
  • C#(Visual Studio)

 

Python(Anaconda)

Pythonは、AIやデータ分析を得意とするプログラミング言語で、他の言語と比べて、少ないコード量でAIを実装することができます。

また、専門的な知識が無くても、AIを作れるようライブラリも充実しているので始めやすいです。

 

AIの学習結果などを簡単にグラフで表示し、視覚的にAIが期待通りに学習できているかどうかも判断できるので、おすすめですね。

 

Anacondaは開発環境のことで、データサイエンス、機械学習などのAI、大規模なデータ処理、予測分析などに必要なパッケージ管理を簡単にできるようになります。

 

パッケージ管理とは、ライブラリなどの導入・削除・バージョンなどの管理のことです。

複数のライブラリを導入する際には、他のライブラリと競合しないように導入してく必要がありますが、通常の開発環境では、競合具合に関係なくインストールします。

 

ですが、Anacondaであれば、競合具合も判別してくれるので、環境構築が楽になります。

 

これから、AIのプログラミングを始めるのであれば、この環境がおすすめです。

 

C#(Visual Studio)

Microsoft社のVisual Studioを使って、C#言語で作る方法です。

 

Pythonの方が、コード量が少なくライブラリも揃っているので、AIを作りやすいです。

しかし、プログラミング言語的に、C#の方が処理速度が速いという特徴があります。

 

そのため次のような場合は、C#で作ったりします。

  • AIの学習時間が長くなる場合
  • 定期的に最新データでAIの再学習をする必要があり時間制限がある。

 

私は、株・FXの売買の判定をするAIを作る際、常に最新のデータをAIに取り込んだ上で予測させるために、高速な学習が必要だったので、この環境を選びました。

 

ですが趣味でやっていることなので、この開発環境が実際にIT企業で使われているかは分からないですね。

 

 

AI・人工知能でプログラミングの仕事は奪われる?

AI・人工知能 仕事

プログラマーって、将来的にAIに仕事を奪われるんでしょ?

良くある疑問ですが、結論を先に言うと、AIがプログラマーやSEの仕事を奪うことは当分ないと思います。

 

私はどこまでいってもAIに奪われることは無いと考えているのですが、年々、技術進化のスピードは上がってきているので、どこまで大丈夫かは予想もつきません。

ですが、少なくとも50~100年ぐらいは大丈夫かなと考えています。

 

そもそも、上で解説した通り、弱いAIしか実現できない中で、

  • 取引先の要望を聞いてシステム・ソフトウェアを設計する
  • 新しい技術を使ったり、新しいソフトウェアを作る

ということはAIにはできません。

 

AIは、基本的に過去のデータから今後を予測するものなので、新しい技術を使ったり、新しいソフトウェアを作るとなった時、過去のデータには事例が無いわけですから、予測しようとしても「???」となったり、頓珍漢な結果になります。

 

また、例えAIが音声認識で相手の言葉を読み取り、その言葉に対して返答できたとしても、取引先の要望をシステムやソフトウェアの設計に落とし込むことは非常に難しいです。

ケンさん

実現できるとは到底思えない

 

取引先には、ITや技術的なことに詳しくない方もたくさんいらっしゃいます。

そのような方の要望を聞く際には、業務フロー等を理解し、裏にある意図を解釈して、進めていく必要があります。

 

これをAIができるとは到底思えないです。

 

むしろ、この業界の仕事をAIに奪われるのであれば、それ以上に他の業界がAIに奪われているような気がします。

 

AIに限らず、ITによって新しいサービスがどんどん登場し、それに伴って既存のサービスや業界が衰退、あるいは無くなるということも起きています。

ITによって、その移り変わりのスピードも速いです。

 

そのため、AIによって奪われるかどうかの基準で仕事を選ぶのであれば、他の業界よりプログラマーやシステムエンジニアの方が最後まで残ると思うので、選択肢の1つに入りますね。

 

 

まとめ:AI・人工知能の可能性は無限大!

AI・人工知能のプログラミングについて、実際にプログラミングしていく前に知っておくべきことを解説してきました。

 

AIの勉強をするにあたり、特別高スペックなパソコンも必要無いので、すぐに始めることができます。

 

≫ 関連記事:ディープラーニング・機械学習に必要なPCスペックとおすすめBTOパソコンを解説!

 

プログラミング自体が初めてで、いきなりAIを勉強するのは、なかなか難しいと思います。

ケンさん

AIだけでも結構難しかったからな!

 

そういう方は、まずは、Pythonのプログラミングから始めてみて、慣れてからAIに取り組んだ方が良いでしょう。

 

AIは、世間的に何かと注目されており、仕事でも需要の高いスキルなので、将来的に、AIを使って仕事をしたい方にもおすすめですね。

ただ、その場合は、プロから知識を学んだ方が良いので、プログラミングスクールで学ぶのがおすすめです。

 

 

 



どうも、ケンさん(@pasolog_ken)でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です