【文系理系必見】仕事を奪う「AI」を4分で解説

最終更新日: 2022-11-10
#
アドベントカレンダー
#
ニューラルネットワーク
#
ディープラーニング
#
解説

ディープラーニングの基礎を4分で解説

本記事は大阪工業大学アドベントカレンダー 12/22枠に投稿するために書かれたものです.詳しくは最後に.

短い自己紹介

名前は伊地知翔也と言います.高校時代からニューラルネットワークを研究し,高速化手法を開発,SSH研究発表に招待され研究成果を発表しました! 詳しくはこちら

ほんとに足し算と掛け算だけ?

AIが仕事を奪うという流行り言葉はすでに沢山の人が聞いたことがあると思う.しかし,肝心の仕組みはまったく知らない人が多いと感じる.
例えば,AIアシスタント などの仕組みしろうと思えば,深い数学知識が必要になるが,AIのそもそもの原理はいたって単純だ.原理から出発すれば,意外と簡単なことに気づくと思う.

では,4分タイマースタート!!

判断を代替するAIを考える

ここでは焼肉に誘われたときの判断をAIにさせることを考える.

判断するのに必要な要素

まず,焼肉に誘われたら何を考えるだろうか?

  • お店の質

  • お店の値段

  • 友好度(誘ってきたメンツ)

  • など,さまざまな情報の中から判断する.
    また,その中の情報でも,人によって,どれを優先するかも異なる.
    (値段を重要視する人もいれば,メンツを重要視する人もいる.) これらを合計して,ある一定の値になれば誘いを受ける(行く)のではないだろうか. これらを数式で落とし込んでみる.
    まず,判断の元となる情報(条件)を $$
    \begin{align} &x_1 \quad(焼肉のお店の質)\\\ &x_2 \quad(お店の値段)\\\ &x_3 \quad(友好度)\\\ &… \quad(他の条件)\\\ &x_n \quad(条件はn個ある) \end{align} $$

    次に優先度(ここから重みと呼ぶことにする)を $$ \begin{align} &w_1\quad (お店の質を重要視する度合い) \\\ &w_2\quad (お店の値段を重要視する度合い) \\\ &w_3 \quad (誘ってきたメンツを重要視する度合い) \\\ &…\quad (他の条件を重要視する度合い) \\\ &w_n \quad (n個目の条件を重要視する度合い) \\\ \end{align} $$

    とする.これをかけて足した値(yとする)が判断の値となるので, $$ y=(x_1 \times w_1) + (x_2 \times w_2) + (x_3 \times w_3) +…+(x_n \times w_n) $$
    判断の値一定以上(θとする)になるとき,行く(誘いを受ける)ので,行く時を1 行かない時を0とする. 活性化関数と呼ぶが本記事では名前は気にしなくていい:) $$ \begin{eqnarray} 行く(1)行かない(0) = \begin{cases} 1 & ( y \geqq θ ) \quad yがθ(基準)以上なら行く \\\ 0 & ( y < θ ) \quad yがθ(基準)を下回ったら行かない \end{cases} \end{eqnarray} $$
    図にするとこんな感じ

条件分岐の表現はどうやるの?

上の式だけで,焼肉の誘いを受けるかどうかの判断はできる.
ここで,小数がでるのを防ぐために,条件がいい時は1,条件が最悪な場合は,-1とする.(bad か good のどちらか)

簡単に例をあげてみると,

1つの条件を満たすときの重みwと一定の値θを考える.

つまり,条件 x1 x2 のどちらかが,1の時に1を出力するような値だ.
例えば,条件が1つでも良かったら,即座に行く場合.(ほかの条件が悪くても,誘ってきたメンツだけでも良かったら行く場合)
今回は2つだけの条件 x1 x2のみ考えてみる. $$ x_1,x_2 を-1から1までの実数とする.(-1 \leq (x_1,x_2) \leq 1)\\\ ここで,x_1=1,x_2=-1とする, w_1,w_2=1とすれば,\\\ y=(x_1 \times w_1)+(x_2 \times w_2)だから,\\\ y=(1 \times 1)+ (-1 \times 1) = 0\\\ y=0がのとき1を出力すればよいので,\\\ θ=0 $$

どちらの条件も満たすときの重みwと一定の値θを考える.

これは,x1 x2がある場合,x1 x2のどちらも1のとき,1を出力するような値だ.
焼肉に行くときに,すべての条件(値段,質,メンツ...)を考慮する場合だ.
上と同様にx1 x2 w1 w2を固定してやれば $$ w_1,w_2=1(1に固定する)\\\ θ=2 $$ がわかる.

しかし,上の式では問題が!!

上のように,簡単な条件だとこれらでAIは完成する.
上の式は実は1950年代に考案された単純パーセプトロンと呼ばれるものだ.
ただし,より複雑な条件は表現できないことがわかっている
わかりやすい例を挙げると,
自分は恥ずかしがりだとする.
恋人と友達がいたとして,焼肉に誘われたとする.
恋人とだけ,友達とだけなら,行く.
一人(ぼっち),恋人と友達が一緒に行く場合は行かない.

この場合を考えたとき,上だけの式では表現できないことがわかる.

解決…ディープラーニング!

もったいぶっても,仕方ないのでこれの解決方法は上に示した単純パーセプトロンを複数個でつなげるのだ.式が複雑になるので,図だけで示す.

青色の○以上というのは一定の値θのことだ.
結果は先ほど示したものを組み合わせただけだ.これは通常,ニューラルネットワークと呼ばれる.(ニューラルとは脳の神経細胞のことだ)
これをより多くつなげることで,より高度な複雑な条件を判断できると考えられている.
現代の高度なAIとよばれるものはこれの応用で,
この数と層(図を縦に見た場合の塊)をさらに増やしたものをディープラーニングと呼んでいる.
※補足::本来は一階微分可能な関数を活性化関数にする必要がある.

実際のAIに学習させる場合

ここでは深く触れないが,実際に学習させる場合は問題(条件)と答え(行くか行かぬか)を与えるだけで,重みw(優先度)と一定の値θを自動で決定してくれる.理解には,高校数学2,3年レベルの微分の知識が必要になる.

タイマーストップ !!

さいごに

なぜ投稿したか?

本記事は,大阪工業大学アドベントカレンダー 12/22枠に投稿するための記事である.なお,ほかの投稿者には先輩である大学院生や,IT企業に就職し東京へ行ったOBも含まれているので,興味のある人はぜひ.
そもそもアドベントカレンダーとは何かという人が多いと思うので,簡単に説明すると,12月1日からクリスマスまでの非リア充や暇人の辛い期間を,技術系の記事を書き,慰めあおうとするものである. 無論,投稿する人は,暇人か,あるいは,非リア充かのどちらかに分類される... 冗談はさておき,本記事の一番の目的は筆者(伊地知)の就活に備えるためだ.考えたことをアウトプットすることで,就活の様々な局面に対処することができると考えているからだ.

今後

単純パーセプトロンを考え,限界を知り,ニューラルネットワーク(ディープラーニング)まで概説することができた.
しかし,現代に使われるAIはもっと複雑である.また,ニューラルネットワーク以外のアプローチもある.(決定木や,サポートベクトルマシンなど)今後は,実際の重み調整方法やより高度な畳み込みニューラルネットワークを解説していきたい(いつか)


author

WEBエンジニアをやっています.
技術スタックとしては,AI/機械学習,モダンWEB開発,電子工作など多岐に渡ります.
このサイトでは、WEBサービスの開発や、プログラミングに関することを書いています.

Learn More

関連記事

thumbnail

あほくさ

hugoでサイトを作る go知らなくても作れるよ。 ビルド早いよ 数十記事なら、たいして変らない 数千記事書いたら、ありがたみがを感じると思う optionなし print('ahoxsa') print('oppi') try: print('baka') except: print('failure') optionあり 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 // GetTitleFunc returns a func that can be used to transform a string to // title case. // // The supported styles are // // - "Go" (strings.Title) // - "AP" (see https://www.apstylebook.com/) // - "Chicago" (see https://www.

thumbnail

あほくさ3

Markdown記法 サンプル集 見出し 1個から6個シャープで見出しを記述する。 ※シャープと見出し文字の間には半角スペースを1つ入れること 記述例 # 見出し1 ## 見出し2 ### 見出し3 #### 見出し4 ##### 見出し5 ###### 見出し6 表示例 見出し1 見出し2 見出し3 見出し4 見出し5 見出し6 箇条書きリスト ハイフン、プラス、アスタリスクのいずれかで箇条書きリストを記述可能。 ※ハイフン、プラス、アスタリスクと箇条書きの項目の間には半角スペースを1つ入れること 記述例 - リスト1 - ネスト リスト1_1 - ネスト リスト1_1_1 - ネスト リスト1_1_2 - ネスト リスト1_2 - リスト2 - リスト3 表示例 リスト1 ネスト リスト1_1 ネスト リスト1_1_1 ネスト リスト1_1_2 ネスト リスト1_2 リスト2 リスト3 番号付きリスト 数値+半角ドットで番号付きリストを記述可能。 番号の内容は何でもいい。実際に表示される際に適切な番号で表示される。 そのため、一般的にはすべて 1. 内容 で記載すると変更に強く楽です。 ※数値+半角ドットと箇条書きの項目の間には半角スペースを1つ入れること 記述例 1. 番号付きリスト1 1.

thumbnail

あほくさ2

hugoでサイトを作る go知らなくても作れるよ。 ビルド早いよ 数十記事なら、たいして変らないあ. 数千記事書いたら、ありがたみがを感じると思う koi kok ksaka