初心者向け学習方法一覧はこちら
この記事はAIを初学者にもわかりやすく解説する記事の応用編です。
基礎編と応用編でのセットで読むことを想定しておりますので、基礎編がまだの方はまずこちらの記事を読むことを推奨します。
これまでの復習としてはAIには様々な種類が存在し、問題に応じて適切に使用する必要があることを具体例を用いてご紹介しました。
今回は、具体的なAIについて例を踏まえながらご紹介します!
具体的なAIの紹介
現代科学の最先端ともいえるAIにもたくさんの種類があります。
この種類の多さがAIが現代社会の多くの問題に対応できる理由なのですが、同時に初学者への大きな壁になってしまっています。
なので今回はいくつもあるAIから以下の5つに種類を絞ってご紹介します!
・遺伝的アルゴリズム
・強化学習
・ニューラルネットワーク
・ディープラーニング
・GAN
どのようなことをしているのか数式を用いて説明しようとすると大学数学の知識が必要です。
そのため今回はできる限り数式を使用せずに、AIがどんなことをしているのかイメージできるようにご説明します!
遺伝的アルゴリズム
遺伝的アルゴリズムとはデータを遺伝子に見立てて複数用意し、環境への適応度の高い個体を優先して残しながら答えを探索するという進化していく様子をアルゴリズムにしたAIです。
それぞれの遺伝子を個体と呼び、個体には「交叉」「複製」「突然変異」という行動の選択肢が用意されています。そして、それぞれの個体が行動し、次の世代に移ることによってデータが新たに生まれていきます。
「交叉」とは、データ同士を組み合わせ1つの遺伝子を作る行動で、現実世界では交配にあたります。
交叉がある事で環境に適応できる個体を生み出すことができます。
「複製」とは、自身と全く同じ遺伝子を次の世代に残す行動です。
複製があることで低迷することを防ぐことができます。
「突然変異」とは、極小確率で遺伝子にランダムな値を発生させる行動です。
突然変異があることで同じ状態に留まってしまう局所解に陥ることを防ぐことができます。
この遺伝的アルゴリズムの考え方は、1975年に提案されたものです。
仕組み自体もシンプルですが、インターネット上にも情報が豊富にあるため、最初に学びやすいAIです。
強化学習
強化学習とは、エージェントと呼ばれるプレイヤーを、人間が操作する環境と同じ環境に置き、その行動を採点することでエージェントの行動を制御し最適な行動を取れるような行動を決定する方法です。
採点の方法としてはできる限り早く完了するために毎秒減点していく方法、最低限してほしい行動が決まっている場合にはその行動をとった場合に加点する方法があります。
また、強化学習では採点のことを報酬と呼びます。
マイナスの値の場合はマイナスの報酬です。
例えばロボット掃除機ではゴミの数を報酬としてできる限りゴミを回収できるように行動を決定しています。
ニューラルネットワーク
ニューラルネットワークは人間の脳の神経を模したノードと呼ばれるものをいくつも組み合わせて作られたAIのことです。
ノードはいくつかの数字による入力を受け、入力に重みと呼ばれる定数をかけて偏りと呼ばれる定数を足し最後に活性化関数をくぐらせるという構造になっています。
日本語で式に表すとこのように表現できます。
活性化関数としてはReLU(0以下の値を0にする)、恒等関数(なにもしない関数)などがあり、目的によって使い分けます。
また、ニューラルネットワークには順伝播と逆伝播という2つの段階があります。
順伝播は問題をニューラルネットワークに解かせる「テスト」の段階です。
逆伝播はニューラルネットワークが解いた答えと本来の答えとの誤差を「修正」の段階です。
逆伝播の時に重みの値と偏りの値を更新することで正確性を上げるような仕組みになっています。
ディープラーニング
ディープラーニングは先ほど紹介したニューラルネットワークの中間層を何層にも増やしたものです。
ニューラルネットワークでは入力の値を工夫する(特徴量といいます)必要があるため熟練の技が必要です。
一方、ディープラーニングでは特徴量をディープラーニング自体が抽出するため入力を選ぶときに熟練の技は必要ありません。
さらに層を何層にも増やすことで複雑な問題にも対応できるようになります。
しかし入力層側の中間層にまで逆伝播することが難しいというデメリットもあるため、層が多いからニューラルネットワークの上位互換というわけではありません。
データの数と問題の難易度に合わせて使い分けることが必要です。
ディープラーニングを用いたAIとしては先ほども紹介した囲碁AI「AlphaGo」や画像生成をするAIがあります。
GAN
GANとは日本語にすると敵対視生成ネットワークで「ガン」と読みます。
ディープラーニングの一種で、画像生成をすることができます。
GANは「ジェネレーター」と「ディスクリミネーター」の2つで構成されています。
ジェネレーターは、ランダムに画像を生成するAIです。
一方でディスクリミネーターは、画像がAIが作った画像かどうか見分けるAIです。
このジェネレーターとディスクリミネーターが切磋琢磨し、画像の精度を上げることでまるで人間が描いたような画像を生成することができます!
画像の隠れてしまっている部分を補完するアプリにもこのGANが使用されています。
まとめ
今回はAIを初学者にもわかりやすいようなるべく丁寧に紹介しました。
基礎編・応用編でご説明したことをエッセンスとしてまとめると、
・AIはどんな問題でも解決できる魔法ではなく問題に応じて適切なものを選ぶ!
・既に現代生活とAIは切っても切れない関係である!
・Pythonを利用できる環境さえあればAIの開発が可能!
ここまで読んだいただいた方には実際にAIがどのようなことをしているのかがイメージできるようになったかと思います。
これでAIを開発するうえで必要なベースの知識ができました!
AIを実際にコーディングできるように解説した記事もご用意していますので是非こちらの記事もどうぞ!
プログラミングスクールの選び方
転職を検討中の方向け
フリーランス・副業で活躍したい方向け
教養・キャリアアップしたい方向け
給付金について詳しく知りたい方向け