Bluemo's Brain

Search

Search IconIcon to open search

パーセプトロン

Last updated Unknown Edit Source

    ニューラルネットワークとかの元

    • 一個だけの機械学習だと、表現力低いから使い物にならない

    • 線形分離可能じゃないといけない

      • クラス分け問題
    • 方法

      • 重み [ベクトル]とxベクトルの内積の正負が、2つのベクトルが同じ側をむいているかどうかを表す
      • 同じ側を向いていない=内積が負だったら、重みベクトルをxベクトル+重みベクトルに更新
      • これを全データーでやる

    # #Pythonで始める機械学習

    image

    • パーセプトロンの表し方は二種類ある

      • 一つは、上の画像みたいに、Biasをインプットの一つ(値は常に1)にして、その重みがbiasになるというもの
      • もう一つは、バイアスをパーセプトロンの内部値として持つタイプ
      • 前者の方が多く使われるらしい
    • AND operatorとかも、パーセプトロンで表現できる↓ image

    • ↑のみたいなパーセプトロンを組み合わせるとXOR↓が作れる、シンプルなニューラルネットワーク? image #Udacity_Intro_to_Deep_Learning_with_PyTorch

    image

    • シグモイド関数とかを使って、出力を連続値にしないといけない

      • なぜなら、離散値だと少し動かした時に変化が起きないから
      • Loss Functionと同じ
    • シグモイド関数だと、xの値がある程度大きいとgradient(errorに使う値)がほとんど0になってしまう

      • その対策として、ReLUとか、Tanhとかの他の関数を使うこともある
        • ReLUは、正の値なら直値をそのまま返す、つまりgradientは1になる
        • Tanhはもうちょい複雑、でもシグモイド関数より良い感じのgradientを返す #ディープラーニング