見出し画像

実践ディープラーニング入門!! パーセプトロンから進化したニューラルネットワークとは?


1. はじめに:AI学習の第一歩

こんにちは、AIスタートアップのPdMとして働いている私(荒木亜音)ですが、新たな挑戦としてAIエンジニアとしてのスキルを身につけることに挑戦中〜!🦖

前回は、パーセプトロンの応用編で、XORゲートと多層パーセプトロンについても学びましたね!
( まだ見てない方は、ぜひチェックしてくださいね〜!🐣 )

今回は、パーセプトロンの弱点を克服!?
ニューラルネットワークについて、初心者でもわかりやすく書いてみたので、ぜひ参考にしてみてくださいね〜!👩🏻‍💻✨


2. パーセプトロンとは?

さて、まずはパーセプトロンの復習からです!👩🏻‍🏫✨

パーセプトロンの仕組みをざっくり言うと、入力データを数値化し、そこに重み付け(重要度のようなもの)を行います。そして、その重み付けされたデータを総合して出力するのがパーセプトロンの仕事です。例えるなら、AIが「この情報がどれだけ重要か」を判断して、最終的にそのデータをどのように扱うかを決定するプロセスです。

簡単な例を挙げると、メールのスパムフィルターを考えてみましょう。メールの内容に基づいて、スパムかどうかを判断する際に、パーセプトロンが活躍します。「怪しい単語が何回出ているか?」や「送信元が怪しいか?」など、いくつかの要素を数値化して、そのデータを元に判断を下します。

最初にわかりやすくまとめたもの投稿してます!
もしまだ見てない方は復習も兼ねて見てみてください〜!🐣✨


3. パーセプトロンとニューラルネットワークの違い

パーセプトロンの限界についても触れておきましょう😎
シンプルで分かりやすいアルゴリズムですが、実際の問題を解決する際にいくつかの制約があります。

その一つが、「線形分離可能」な問題しか解けないことです。
要するに、直線や平面でデータを分類できる場合には機能しますが、複雑なデータを扱う場合には限界が出てしまいます。

ここで登場するのが「ニューラルネットワーク」です!このニューラルネットワークは、パーセプトロンを拡張したものと考えると分かりやすいです。複数のパーセプトロンを組み合わせることで、より複雑なパターンや非線形なデータも学習・処理できるように進化したんですね。
イメージとしては、パーセプトロンが単純な労働者なら、ニューラルネットワークは高度なチームワークを発揮する組織みたいなものです。


4. ニューラルネットワークの仕組み

では、そのニューラルネットワークの仕組みを具体的に見ていきましょう。ニューラルネットワークは基本的に「入力層」「隠れ層(中間層)」「出力層」の3つの層から構成されています。まず、データが入力層に入ると、隠れ層で重みとバイアスが調整されながら情報が処理され、最終的に出力層から結果が出てくる、という流れです。

  • 入力層:データが最初に入ってくる部分。画像ならピクセルデータ、テキストなら単語や文章がここに入ります。

  • 隠れ層:ここが魔法の起こる場所です。重みとバイアスによってデータが調整され、何度も情報を繰り返し学習します。この層の数や構造によって、AIの性能が変わります。

  • 出力層:最終的な判断や分類結果を出す部分です。「猫か犬か?」の分類結果などがここで出力されます。

ニューラルネットワークの強力な点は、この重みとバイアスを自動で学習していく仕組みにあります。これにより、AIはどんどんデータに基づいて改善され、精度が向上します。

5. Pythonでニューラルネットワークを実装してみよう

ここからは、実際にPythonでニューラルネットワークを実装してみましょう!今回は、非常にシンプルなニューラルネットワークの例を紹介します。

import numpy as np

# シンプルなニューラルネットワークの構築
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# 重みとバイアスを初期化
weights = np.array([0.1, 0.2])
bias = 0.3

# ニューラルネットワークの計算
def neural_network(input_data):
    weighted_sum = np.dot(input_data, weights) + bias
    output = sigmoid(weighted_sum)
    return output

# 入力データ
input_data = np.array([0.7, 0.9])
output = neural_network(input_data)

print("出力:", output)

このコードでは、簡単なシグモイド関数を使ってニューラルネットワークを構築しています。入力データに重みを掛け合わせ、バイアスを足して出力を計算します。実際のプロジェクトでは、KerasやPyTorchのようなライブラリを使って、より高度なニューラルネットワークを簡単に構築することができますが、まずはこのシンプルな例で基礎を理解してみてください〜!


6. まとめ

最後まで読んでくれてありがとうございます!!
パーセプトロンから始まり、ニューラルネットワークの基礎について学びました😇

AI技術は一見難しそうに思えるかもしれませんが、理解し始めるとその無限の可能性にワクワクしてきますよね!🧐
今後の学習では、実際の応用例やさらに高度な技術に触れていきたいと思っています。次回もお楽しみに〜!🦖✨


この記事が気に入ったらサポートをしてみませんか?