人工知能を実現する方法として,今までいくつかの方法が開発されてきました.
たとえば,「全ての人間は,死ぬ」,「ソクラテスは人間である」と教えると,
「ソクラテスは,死ぬ」と答えるプログラムがあるとします.
こうしたプログラムは,知的な振る舞いをするため,人工知能と呼べるかも知れません.
こうしたプログラムにいろいろな知識を教えると,
「とある病気において,患者が死ぬかどうか」を答えてくれるプログラムが実現するかも知れません.
しかし,人工知能の長い研究の結果,明らかとなったのは,
そうしたプログラムが実用的な動作をするようになるまでには判断の根拠となる膨大な医学知識を整備する必要があるという点でした.
そして,医学知識の理解にはより一般的な知識の整備も求められることから,
その編纂に要するコストも膨れ上がり,およそ実用的でない水準となることが明らかとなりました.
こうして,期待されたほど実用的なアプリケーションが実現しなかったことから,
人工知能技術への関心は長らく停滞することになりました.
その後,人工知能が再び脚光を浴びるようになった背景には,いくつかの技術革新がありました.
まず,コンピュータが知的な振る舞いをする上で必要になる知識を人間が教えるのではなく,
問題を単純化することによって,機械が自ら学ぶことが可能となりました(機械学習).
また,人間の脳に含まれる神経網をモデルとしたニューラルネットワーク技術が発展し,
様々な実用的なアプリケーションが実現しました(いわゆるディープラーニング).
さらに,コンピュータの性能一般が向上したことに加えて,
機械学習やディープラーニングに求められる計算に特化した演算回路(GPU)が安価に入手可能となりました.
以上の結果,人工知能技術が,再び社会の注目を集めるようになりました. コンピュータ囲碁が,人間のトッププロに勝てるようになったことを聞いた方もおられるでしょう. 自動運転車や医療用人工知能についてのニュースも,数多く聞かれます. そうした現在の人工知能技術の核にあるのが,与えられたデータから法則性を学びとる,機械学習と称される一連の手法です. このページでは,人工知能について自習してみたいとお考えの方のために,最適な教材を探り当てるお手伝いを試みます
誤差の2乗和を求めています
(高校数学B 数列の和)
損失関数の偏微分を計算しています
合成関数の微分の理解も必要です
(大学初年度 微分積分学)
連立方程式を解いています
(大学初年度 線型代数学)
PythonライブラリのNumpyを読み込み, $0\le x\le 10$の範囲を$20$等分した$x$の座標を配列として確保し, 各点で$y=2x+5$を計算し さらに平均0標準偏差1の正規分布に従う乱数を $y$に加えています.
「回帰」の問題を概観しましたが,ここに出てきた考え方は機械学習・深層学習において 基本的かつ重要なものです. 例えば,深層学習などのニューラルネットワークを用いた「学習」では, 「損失関数」を最小にすることでニューラルネットワークの重みパラメータを調節します. このとき用いられる「勾配法」を「誤差逆伝播法」といいます.
教材に取り組まれる際に,これらのキーワードを手がかりにされるとよいでしょう.