最近になってみて、さすがに機械学習とか深層学習とかそのあたりの知識が足りなさすぎるのでさわりだけ学んでみました。実際にお客様からAIに関する領域を求められることは現状まだありませんが、10年先の技術として少しずつ学んでいきたいと考えています。その学習成果をこちらに書いてみたいと思います。AIとか機械学習とか、その位置付けAI(人口知能)とか機械学習(マシーンラーニング)とか深層学習(ディープラーニング)とかいろいろな言葉があるのですが、それぞれの関係について簡単に整理してみたいと思います。階層構造的には次の関係になります。深層学習(ディープラーニング)用語の意味AI(人口知能)まるで知能があるような動きをするアプリケーションシステムなどの総称とするのが概ねの世間の理解のようです。AI(人口知能)という言葉は非常に曖昧な要素を持っていて、時と場合によっては様々な意味で使われることが多いようですね。)には以下のようにあります。science)の一分野」を指す語。「言語の理解や推論、問題解決などの知的行動を人間に代わってコンピューターに行わせる技術」、または、「計算機(コンピュータ)による知的な情報処理システムの設計や実現に関する研究分野」ともされる。機械学習(マシーンラーニング)学習用のデータによって特定の法則を導き出し、判断を行うためのアルゴリズムのことを指すようです。このアルゴリズムのことをモデルと言い、モデルには様々な種類があります。)には以下の説明があります。learning)とは、人間が持つ学習にあたる仕組みを機械(特にコンピュータ)で実現する技術・手法の総称である。ニューラルネットワークニューラルネットワークとは機械学習のモデルの一つです。)には以下のようにあります。NN)は、脳機能に見られるいくつかの特性に類似した数理的モデルである。network、ANN)などと呼ばれることもある。生物学と相互の進展により、相違点なども研究されている。深層学習(ディープラーニング)ニューラルネットワークの中でも信号の伝達を多層に重ねていったもののことを深層学習(ディープラーニング)と呼びます。)には以下のようにあります。4層以上の深層ニューラルネットは、局所最適解や勾配消失などの技術的な問題によって十分学習させられず、性能も芳しくなかった。近年、ヒントンらによる多層ニューラルネットワークの学習の研究や、学習に必要な計算機の能力向上、および、Webの発達による訓練データ調達の容易化によって、十分学習させられるようになった。対象とする問題に対し、他の手法を圧倒する高い性能を示し、2010年代に普及した。やって学習するのか(機械学習の基礎の基礎)「データのまとまりに対して一定の関数を実行し、その結果が正しいかどうかをそれぞれ判断することによって関数を調整していくことが機械学習である」と書けばイメージがわくでしょうか。関数というのは以下の数式のことですね。部分に個別の関数があてはめられyの結果が正しいかどうかを判断していくことによって学習を進めていきます。ニューラルネットワークの基礎「パーセプトロン(Perceptron)」パーセプトロンとは古くからある2クラスの線形識別関数を求める方法で、現在のニューラルネットワークや深層学習の基礎となっている考え方と言われています。このパーセプトロンを数式で表すと以下のようになります。0と数式を書くと最初は難しいかもしれませんが、各変数の意味は次のようになっています。b識別の境界線を求めるパーセプトロンは上記の数式に対してx0とx1に対してそれぞれ数値を代入すると点が定まります。これをデータの集合に対して個別に計算を行って多数の点を求めて、各点が2クラスのうちどちらのクラスの所属しているかどうかを判断するためのものということが出来そうです。以下のようなケースを積み重ねていきます。Bこれらの点を2次元のチャートにプロットすることによって、クラスAとクラスBの境界線を引くことができるようになります。パーセプトロンとニューラルネットワークの違いこれによって求めることができるのはあくまでも非常にシンプルな直線でしかありません。直線のことを線形と言います。世の中の様々なものをモデル化していくにあたって線形の表現だけでは表現しきれないものが多いため、学習を重ねることによって違った直線を組み合わせて非線形(矩形や曲線など)の線を境界線として描くための領域がニューラルネットワークとなります。Function)を付与して、非線形のデータを連続入出力できるようにすることによってディープラーニングを実現するということです。学習用データの入力を行っていくときに、これまでに学習させたことのない新たなデータを学習させる場合も多いと思いますが、この未知のデータを学習する場合の精度(性能)のことを汎化性能と言います。学習を行うためのネットワークを増やしすぎると学習が複雑になりすぎて、汎化性能は高マりすぎるといったことが起きます。汎化性能が高まりすぎると現実には起こりえない点がプロットされてしまう可能性があり、本来存在しえない境界線が引かれることもあるようです。この状態を過学習と言い、過学習にならないようなネットワークの構成を考えていく必要があります。このあたりの領域までくると私も実際にコード書いて動かしたことがないので、まだあまりイメージがわいていません。まとめAIと言ってもざっくりしすぎていて何を表すのかはAIという用語を構成する要素を見ていかないと一概にはこれを決めることはできません。AIの領域のうち、ニューラルネットワークや深層学習をはじめとした機械学習について今回は少しだけ学んでみました。これからは「AIの時代だ」なんていう言葉もよく聞かれるようになってきましたが、これらを現実に応用できるのはAmazonやGoogleなどの超大企業だけなのではないかということで中小企業様向けにローカライズして応用する方法はまだまだ思いつきませんが、予算的にも中小企業様が手を出すことができるようなものを企画できるのであれば、ぜひともチャレンジしてみたいという気持ちはなくなりませんね。この他にも機械学習における「推論と学習」といった概念など、もう少し詳しく見ていくと様々な概念があるのですが、それらについてはまた別の機会に書いてみたいと思います。Platform)を使用した機械学習システムの構築方法についてGCPの管理画面などの説明も添えながら説明されている書籍です。個人的な感想としては、この書籍を学ぶ前に機械学習や深層学習(ディープラーニング)の学習書籍を挟んだ方が有益になると感じました。実務に近い形の書籍ではありますが、やはり概念をきちんと押さえておかないといきなり実務のシステムレベルまで落とし込んでも何が何だかイメージが掴みにくいです。公式アカウント資料ダウンロード会社やサービスに関する資料ダウンロードをご希望の方は右の資料ダウンロードページからご利用ください。ご希望の方は応募フォームからご応募ください。