こんにちは、こがたです。
多くの場面でAIが利用されるようになってきました。
AI・人工頭脳というとムズカしく感じる方も多いと思いますが、仕組みは単純です。
この記事ではAIでもっとも利用されているディープラーニングの仕組みを説明します!
文系でも技術者でない方でも理解できるようにまとめてあります。
- AIに興味がある
- ディープラーニングの勉強を始める
- AIの仕組みを知りたい
- 深層学習って何ができるの?
まずィープラーニングの簡単な紹介とできることを説明します。
簡単に周りの人に説明できる程度の知識が身につきます。
次に具体的な仕組みを説明します。
できることの意味や応用例などを理解することができるようになります。
ディープラーニングって何ができるの?
実はAI=ディープラーニングではありません!
ディープラーニングはAIのうちの1つの手法です。
この通りディープラーニングはAIの中の、機械学習の中の1つの方法です。
ではディープラーニングができること・できないことをまとめていきます。
- 過去データから予測
- 画像認識
- 音声認識
- 文章処理 etc
聞いたことがある方も多いかもしれませんね。
後ほど仕組みを説明するので、理由がわかると思います。
- 過去のデータがないもの
- 感覚的なこと etc
ディープラーニングは過去のデータ(大量のデータ)を元に未来を予測するものです。
そのため、過去のデータがなければ予測することはできません。
また、簡単な計算を大量に処理することで予測値を割り出します。
現代の情報・技術だと感覚的なところまで予測することはムズカしいでしょう。
美しいと思うことや感情などの感覚的なところは苦手なジャンルです!
正直ここまでは聞いたことがある方も多いでしょう。
これからはディープラーニングの具体的な仕組みを誰でもわかるように説明していきます!
ディープラーニングの仕組み
ディープラーニングは人の脳をコンピュータ上で模倣したものです!
AIでよく耳にするものに「画像認識」があると思います。
これを日常の状況と比べてみます。
目にはいった情報から人を判別する状況を考えてみます。
- 髪
- 身長
- 体型
- 服装 etc
私たちは、このような1つ1つの情報を総合的に考えて人を判別しています。
「画像認識」も特徴量をとらえて、判断していくものなのです!
例えば髪型が変わったり、急にめっちゃ太ったりすると本人の認識ができないこともあると思います。
ディープラーニングも同じことで、これまでのデータと急に変わったものから判断することはできないのです。
無意識のうちに人の頭の中で行われていることをコンピュータ上で機械的に行うのがディープラーニングです!
これから具体的な仕組みを紹介していきます。
まず基本となる2つの構造について理解する必要があります。
- ニューロン
- ニューラルネットワーク
ニューロンは1つ1つの細胞と思っておけばOKです。
一方、ニューラルネットワークはニューロンがまとまったものです。
ニューロン
ニューロンは脳の中の1つの細胞のことです。
イメージはこのようになります。
真ん中の大きな丸がニューロンです。
ここでも人を判別する例を見てみましょう。
左側のニューロンに向かっていくデータが入ってくる情報です。
- 髪
- 服装
- 体型
- 天気
これらのデータの中から人を判別できそうなもの、出来なさそうなものはどれでしょう?
髪と体型は判断するのに使えるよ〜
服は日によって違うしどうだろう、、、
天気は関係ないね!
このように入ってきた情報からデータの利用度合いを決めるのが「重み」です!
データに重みを掛け合わせたものがニューロンに入ってきて合計されます。
そこにどの程度そのニューロンがデータに反応するのか「バイアス」がかけられます。
バイアスをかけてできたデータに活性関数というどの程度ニューロンが反応するのか判定するフィルタを通して新しいデータを作り出します。
y = ax + b のような形になります。
(実際はaとxの組み合わせが複数あります)
- y : 予測値(活性関数を経由)
- a : 重み
- x : 入力データ
- b : バイアス
1つ1つのニューロン(細胞)が簡単な数式でこのようなことをしており、次の細胞にデータを渡していきます。
ディープラーニングの目的はこの「重み」「バイアス」を適切な数値に変えていくことです!
ニューラルネットワーク
ニューラルネットワークは複数のニューロンが連携して、答えを導き出していくものになります。
このような形で複数のニューロンをまとめて層ができています。
層ごとにニューロンにデータを渡して、次の層のニューロンに処理したデータを渡していきます。
そして最終的な予測値を割り出すのです。
複数の層を利用することでディープラーニングは「深層学習」とも呼ばれています。
人を判別する例でいうと、このようなニューロンが連携するイメージです。
- 目 : 視覚
- 耳 : 聴覚
- 鼻 : 嗅覚 etc
このように複数のニューロンで処理した情報を連携させることで人を判断します。
これが予測する流れです!
この流れのことを「順伝播」といいます。
あれ?
予測する流れはなんとなくわかったけど、これだと学習がなくない?
毎回同じ予測になる気がする!
正解です!
これから学習していきながら予測の精度を高めていく仕組みを説明していきます。
学習の仕組み
予測するところまではできました。
これから学習していく仕組みを説明していきます。
学習するにも何か目的が必要ですよね。
受験勉強でも「〇〇大学に合格」といった目的があるはずです。
ちなみに、ぼくは目標としていた慶応大学に落ちました(><)
ディープラーニングの目的は「予測したデータと実際のデータの誤差を最小にすること」です!
それでは誤差を最小にしていくための流れをみていきましょう。
- 入力データから予測値を割り出す(順伝播)
- 予測値と実際のデータを比較する(誤差関数を使用)
- 割り出した誤差を元に復習する(逆伝播)
- 次の予測をする
私たちが普段やっていることと同じですね。
「実行して、結果を確認して、次に活かす」という学習方法になります。
予測したデータと実際のデータを比べる際に「誤差関数」と呼ばれるものを使用します。
この記事では詳細の説明は省略しますが、誤差を割り出すものと覚えてもらえたらと思います。
誤差を割り出したら、順伝播(予測する流れ)と逆の流れで復習していきます。
この流れを「逆伝播」と言います。
誤差を元に逆伝播の流れで各ニューロンの「重み」「バイアス」を更新していきます!
そして、また予測するという流れを繰り返すことで誤差を減らしていき、最適な「重み」「バイアス」を作っていきます。
これがディープラーニングです!!
ディープラーニングの学習方法
ディープラーニングを自分のスキルにするためには、このようなことを学ぶ必要があります。
- プログラミング(Pythonなど)
- ディープラーニングの細かい知識
- 各種関数の理解(数学)
- ディープラーニングの手法について
ディープラーニングができるようになるためには少なくとも、↑が必要です。
この記事では基本となる仕組みを説明しましたが、実際は「CNN」「RNN」など数多くの手法があります!
学ぶことが多く、複雑なのでこれから学習方法を紹介します。
独学で勉強する場合
多少プログラミング経験のある方は独学で学ぶことはできるでしょう。
独学の場合は少なくとも、以下のどれかを利用しなければ学習はムズカしいです。
- Youtube
- 一貫した学習コンテンツ(Udemy)の活用
- 本で学習
まずは『Youtube』に上がっている動画で学習してみるのがオススメです。
無料で見れるので、自分にあっているのか確認してみてください。
それでもわからなかったら『Udemy』を利用してみてください。
全部で10万以上の講座があり、わからないところにフォーカスされた講座を受けることができます。
たまにセールを行っており、1万円代の講座を1,000円代で購入することができます!
また、書籍で学習方法もあります。
ぼくは最初、書籍で学習しようとしたときは挫折しました、、、
書籍で学ぶ場合、多少の知識がある上で始めたほうがよいでしょう。
まったく分からないところから書籍で始めようとしても何が何やら全くわからず挫折する可能性が高いです!
多少知識が身についたらこの書籍で深堀りすることをオススメします。
スクールで学習する場合
スクールで学ぶと多少費用が発生しますが、以下のメリットがあります。
- モチベーションの維持
- 一貫された内容で学ぶことができる
- 質問ができる
そのため、早く効率的に学習を進めることができます。
ディープラーニングを学ぶ場合は『キカガク』がオススメです。
PythonのスキルからAI(ディープラーニング)、AIアプリの開発まで6ヶ月でできるようになります。
またディープラーニングの資格である『E資格』は認定された講座を受講しないと受けることができません、、、
この講座は認定されているため、資格を受けることができます!
費用も「216,000円」からです。
多少高く感じますが、他スクールでは50万円程度が多く、安いです。
ディープラーニングのスキルを身につけて将来を予測していきましょう!
最後に
ディープラーニングはムズカしく思われがちです。
実際は「最適な関数を求めている」だけです!
そのために「予測して間違った分の差分を少なくしていく」ということを機械的に繰り返していきます。
まさに人間がやっていることと同じですね。
努力して、うまくいかなくて改善していく、といった流れです。
具体的な作成方法については後日解説します。
最後まで読んでくださり、ありがとうございました!!!
コメント