【AI入門 #1】直感的に学ぶ人工知能!ディープラーニングの解説
こんにちは、Biz Freakの麦太朗です。
今日は、ディープラーニング(深層学習)について、「誰でも直感的にわかる!」を目標に、わかりやすく、説明します!
Biz Freakでは、ノーコードツールを活用して効率的に開発を進め、新技術を迅速に取り入れることにより、次々と新しいサービスを開発しています。 生成AIを開発やプロジェクトマネジメントに活用したり、サービスの中にAIを組み込むなどをしているので、ディープラーニングは会社にとって、とても大事なトピックです。
「他のブログのディープラーニングの説明が難しくてよく分からなかった」と困っている、営業の方。
「組み込みはできるけど、中でどう動いているのか分からない」と不安になっているエンジニアの方。
ぜひご一読ください!
目次
- 人工知能のプロセス
- 人工知能の予測モデルの作り方
- ニューラルネットとディープラーニング
- ディープラーニングで複雑な予測ができる
- まとめ
人工知能のプロセス
さて、近年、ChatGPTをはじめとする人工知能技術は、目覚ましい進歩を遂げています。
人工知能が人間の知能を超えることを「シンギュラリティ(Singularity)」と称しますが、我々はまさにその時代の到来を目の当たりにしています。
この人工知能は、特定の分野に限らず、多岐にわたる分野で驚異的な進化を遂げていますよね。
例えば、以下のとおりです。
◆テキスト生成
・Claude など
◆画像生成
・Adobe Photoshop など
◆動画生成
・Sora
・Pika など
なぜ、こんなにも多くの分野で同時に進化が見られるのでしょうか。
その理由は、ディープラーニングを含む機械学習の予測プロセスが、基本的に同じ手順に従っているからです。
- 文字、画像、動画などのデータを、ベクトルデータ(数値の行列)に変換します。
- このベクトル(行列)を入力として受け取り、新たなベクトルを出力します。
- 出力されたベクトルを、必要に応じて文字、画像、動画などの形式に再変換します。
そう、予測するものがテキストだろうが、画像だろうが、動画だろうが、同じプロセスを辿るのです。
じゃあ、どうやって、ベクトルデータ(数字の行列形式)に変換するのか。
例えば、画像をベクトルデータ(数字の行列形式)に変換する方法は、以下のとおりです。
そして、画像を重ね続けると動画になります。そのため、画像がベクトルデータ(数字の行列形式)に変換できれば、動画もいけることになります。
また、例えばコンピュータに
「おはよう」と「こんばんは」をコンピュータ語で出力して
と命令してみます。
そう、テキストも、ベクトルデータ(数字の行列形式)に変換できるのです。
ベクトルに変換してしまえば、<入力ベクトルから、出力ベクトルの予測を行うモデル>に突っ込めばよく、予測されたベクトルデータをまた元の形式に戻してあげれば良いのです。
このプロセスはディープラーニングを含む機械学習の予測手法に共通していますが、特に「入力ベクトルから出力ベクトルへの予測を行うモデル」が大きく進化したことが、多くの分野での同時多発的な急速な発展の原因です。
さて、ではこの中間にある予測モデルは、なぜ一気に賢くなっているのでしょうか。
それが、ディープラーニングの力によるものなのです。
ディープラーニングに使用されるニューラルネットワークは、これ(ナンヤコレ)です。
パッと見て、理解できますか?Noですよね。
パッと理解できる方は、このブログ読む必要ないので直ちにページを閉じて下さい。笑
さて、ディープラーニングといえども、機械学習の一種にすぎません。
人工知能の予測モデルの作り方
もともとは、この、中間にあるモデルは、シンプルな線形回帰でした。
例えば、以下のような問題をイメージするとわかりやすいと思います。
上記のように、簡単な問題を解く際には、中間にあるモデルはシンプルな「直線モデル」で良いわけです 。
<シンプルなモデル>
y = ax + b
で、より良い予測をする直線になるように、a
とb
を調整すれば良いのです。そうすると、より良い予測モデルができますよね。
(※調整の方法は、勾配降下法というものを使います。気になる方は調べてみて下さい。ここでは割愛します。)
ただし、これでは単純なもの(=1つのx
が与えられた際、1つの答えy
を返す)しか、予測できません。
では、もう少し難しくしてみましょう。
2つの数字(例えばx1
とx2
)が与えられた際に、1つの答えy
を返すモデルは以下のような感じですね。
では、4次元・5次元と増えるとどうなるでしょうか。
3次元以上の図は書けないので図示はできませんが、このような式になります。
可視化はできませんが、式はシンプルですよね。
5次元になると、x1
〜x5
までの5つの数字を入力情報として受け取ることができます。
これをめちゃくちゃ増やしていくと、大きなベクトル(行列形式のデータ)を受け取ることができるようになります。
さて、いずれにしても、このように、数値に置き換えることができれば、予測を行うことができます。
そして予測を行った後で正解と比較してモデルをチューニングする(a
とb
などの変数(←パラメータと呼びます)を調整する)ことで、より良いモデルを作ることができるのです。
まとめると、
- とりあえず数値に変換する(シンプルな値は数値で良いです、複雑なものは、ベクトルデータ(行列)に変換します)
- 数値に変換したら予測モデルを作って、パラメータを更新して、より良いモデルを作る
といったプロセスで人工知能は処理をしています。
ニューラルネットとディープラーニング
では、具体的な問題に入っていきましょう。
以下のような予測問題があったとします。
出身校は、テキスト情報ですが、例えばこれを、
- シンプルにテキストをベクトルデータに置換する
- 過去の花園出場回数に置換する
など、なんでも良いのですが、とりあえず数値に置換し、全てのx
が数値になったらモデルに突っ込みます。
<今回のモデル>
y = a1・x1 + a2・x2 + a3・x3 + a4・x4 + a5・x5 + a6・x6 + b
あとは、予測データと教師データが近づくように、a
とb
をチューニングすれば、良い予測モデルの完成です。
さてさて。
ちょっと式も長くなってきましたので、上記の式の書き方を変えて、図にみましょう。
こんな感じで図にしてみます。
それぞれの点から、それぞれの線上のa
もしくはb
をかけて、最後に足し合わせるようにy
を作ると、
y = a1・x1 + a2・x2 + a3・x3 + a4・x4 + a5・x5 + a6・x6 + b
と同じ式になりますね。
このように図示すると、複雑なモデルでも、比較的表現しやすいですね。
ここまできたところで、もしかすると、勘の良い方は気づいたかもしれません。
そう、冒頭の中間にあったモデルのイラストに出てきたこの部分に形がそっくりですね。
そうなのです。
実は、このシンプルなy = ax + b
を、何回も行ったものがディープラーニングです。
この、a
やb
の部分を色々変えてy
を複数作ってみたり、算出されたy
に対して、何かの値
(活性化関数といいますが説明割愛します)をかけてみたりナドナドをして、とにかく計算を重ねていきます。
このような、変更可能な変数(a
やb
や何かの値
)のことを”パラメータ”というのですが、
ディープラーニングとは、「ディープに数式で計算しながら、何度も予測を繰り返す過程の中でパラメータを自動でチューニングして、最適な予測を行う」ことなのです。
これにより、複雑な問いの予測が可能になります。
その仕組みが、人間の脳の仕組み(ニューロンとシナプス)に似ているということで、ニューラルネットと呼ばれています。
そして、そのニューラルネットを何回も繰り返すと以下のような図になり、これをディープラーニングと呼ぶのです。
ディープラーニングで複雑な予測ができる
これまでの例では、x
には数値だけを入れていましたが、数値でさえあればx
は単一の数値である必要はなく、複雑なものを入力(予測)したい際には、ベクトルデータ(行列 X
)を入れてあげても良く、ベクトルデータ(行列 Y
)を予測(出力)することも可能です。
そんな話をしたところで!再度、冒頭のナンヤコレ画像を見てみましょうか。
ちなみに Σ は、「全部足す!」です。 また、σは、途中で割愛した「活性化関数」("算出されたy
に対して、何かの値
(活性化関数といいますが説明割愛します)をかけてみたりナドナド"の、何かの値
の部分)です。なんかの値かけてんだなー程度に思って下さい。どうせ学習過程で調整可能なパラメータなので、詳しく理解しなくていいです。
ちょっと、意味わかりませんか?はいー。(パチパチパチ)
まとめ
さてさて、ディープラーニングの概要は理解頂けたでしょうか?
なんとなくの概要は掴めたのではないでしょうか!
このディープラーニングの手法は、結果的に、なんか使ってみたら予測精度が上がったので、今流行っている、という感じです。
そう、現在、ニューラルネットワークを用いたディープラーニングが言わずもがなAIの主流ですが、これは、この手法が最も良い予測を成功させたから、結果的に主流になった、と言った方が正しいです。
例えば、昔、ニューラルネットワークなんて全く使えるものではない、と言われていた時代もありましたし、他のモデル(y = ax + b
を拡張させたロジスティック回帰や、分類によく使われるサポートベクターマシン、決定木ベースのLightGBMナドナド)がずっと優秀だと評価される時代もありました。
しかし、大きくシンギュラリティに迫っているのがこのニューラルネットワークを用いたディープラーニングモデルになります。しばらくはこいつ一択になるかなと。(とはいえ、計算コストがかかるので、弊社でも別の手法で良い場合はそっち選びますがw)
まあ、とりあえず、機械学習をゼロから色々勉強するよりは、しのごの考えずにこのブログを何度も読み返した方が良いです!多分。笑
このような概要が分かっていれば、日々刷新し続ける様々なAIツールを使いこなす側に回ることができます。
今や、APIを叩けば簡単にAIを繋ぐことができ、誰でもハイレベルなモデルを使用できるようになりました。
そんな中、きちんとAIの中身を理解して、ビジネスに必要なものを構築する能力が、より一層大事になってきているのです。
そういった新しいテクノロジーの経験値を、もし手っ取り早く溜めたいと思ったら、ぜひ弊社にお越しください。
新しい技術を取り入れ、新しいことにチャレンジしていく新規事業の開発は、
とにかく学びの機会にあふれています!学びの宝庫です。
https://bizfreak.co.jp/recruit
ぜひお気軽に^^