パーセプトロン(1957)線形分類モデルの第二クラス分類ですが、また、ニューラルネットワークやサポートベクターマシンの基礎となった - 私たちは、以前の分類モデルがあることを知っています。
1 、パーセプトロンモデル
パーセプトロンモデルが2元線形分類器である、唯一の線形分離問題を扱うことができ、知覚モデルのマシンは、別のデータセットへの超平面を見つけようとしている、この超平面は3次元、2次元空間における直線でありますスペースは平面です。
2. パーセプトロンモデルの損失関数
だから我々はパーセプトロンモデルの機能の初期損失を得ました。
我々の研究では、分子と分母は、θ、θは分子のN倍の拡大は、分母が拡大するL2ノルムN回を含んで、見つけることができます。言い換えれば、分子と分母は関係の固定の倍数を持っています。私たちは、その後、自分自身または分母の逆数は、当社の損失関数を簡素化することができます損失の関数として最小化されている他の分子を見つけ、分子または分母である1を固定することができます。パーセプトロンモデルでは、採用している私たちは、最終的に損失関数機械モデルの簡素化を認知する分子を保持することです。
3. 機械の知覚最適化モデルの損失関数
4 。センシングアルゴリズム機械モデル
パーセプトロンアルゴリズムモデルデュアルフォーム
転送: https://www.cnblogs.com/pinard/p/6042320.html
知覚伝統的な方法マシンアルゴリズム:
numpyのインポートとNP から matplotlibのインポートpyplot としてPLT X = np.array([ 1、1 ]、[ 3、3 ]、[ 4、3 ]) そして = np.array([ - 1 ]、[ 1 ]、[ 1 ]]) W = [ 0、0 ] B = 0 DEFトレイン(X、Y、W、B)。 長さ = x.shape [ 0 ] J = 0 ながら、真: カウント = 0の ため、I で範囲(長さ): 印刷(" 反復数:%DW = [%D、D%]%のB = D "%(J、W [ 0 ]、W [ 1 、B)]) IF Y [I] *(np.dot( W、X [I])+ B)<= 0 :正常に分類されていない# B、W#更新 W + Y W = [I] * X [i]は B = B + Y [i]は カウント + = 1 、J + = 1 であれば、カウント== 0 : F = " F(X)=符号(%のD * X +%のD * X +%D)"%(W [ 0 ]、W [ 1 ]、B) 印刷(" パーセプトロンモデル:%S "%F) の戻りW、B、F W、B、F = トレイン(X、Y、W、B) #計画の上に隔離絵画 デフ楽しい(X): Y =( - BW [ 0 ] * X)/ W [ 1 ] 戻りY x_data = np.linspace(0、5 ) y_data = 楽しい(x_data) plt.plot(x_data、y_data、色 = ' R ' ) plt.title(" パーセプトロン" ) #散布図を描きます 用 I における範囲(x.shape [ 0 ]): もし、Y [i]が< 0 : plt.scatter(X [i]が[ 0 ]、X [i]は[ 1 ]、マーカー= ' X '、S = 50 ) 他: plt.scatter(X [i]が[ 0 ]、X [i]を[ 1 ]) plt.show()
結果:
デュアルフォームマシンアルゴリズムの認識
デュアル形式と生の形式はあまり差はないパーセプトロン、処理動作は同じであるが、二重の形によって予め結果格納グレイマトリックスのステップのいくつかを計算することができ、動作速度の一部を高速化することが可能である、データより計算のより多くの数は、より多くの保存、したがってより原形より最適化します
numpyのインポートとNP 輸入matplotlib.pyplot としてPLT X = np.array([ 3、3 ]、[ 4、3 ]、[ 1、1 ]]) そして = np.array([ 1 ]、[ 1 ] [ - 1 ]) #グラム行列を作成します。 Z = np.transpose(X) M = np.dot(X、Z) (プリント" :\ N-グラム行列の構築がある" 、M) 印刷(" ------------------------- " ) A = np.zeros((x.shape [ 0 ]、1 )) B = 0 DEF(X、Y、M、B)を訓練します: 長さ = x.shape [ 0 ] 一方TRUE: カウント = 0の ため、I で範囲(長さ): N = np.dot(M [i]は、* Y)+ B であれば * N Y [i]が<= 0 : [I] = [I] + 1 、B = B + Y [i]は カウント + = 1 であれば、カウント== 0 : W = np.sum(X *、Y軸= 0 ) (B、W)印刷 (印刷" パーセプトロンモデル:\ NF(X)=サイン(%のDy + DX +%(%D))\ N- "%(W [ 0 ]、W [ 1 ]、B)) 戻りW、B W、B = 列車(X、Y、M、B) デフ楽しい(X): Y =(-b -w [ 0 ] * X)/ W [ 1 ] 戻りY x_data = np.linspace(0、5、100 )算術配列番号を作成します y_data = 楽しい(x_data) plt.plot(x_data、y_data、色 = ' R '、ラベル= ' Y1データ' ) のための I における範囲(x.shape [ 0 ]): もし Y [i]が< 0 : plt.scatter(X [i]が[ 0 ]、X [i]は[ 1 ]、マーカー= ' X '、S = 50 ) 他: plt.scatter(X [i]が[ 0 ]、X [i]は[ 1 ]、S = 50 ) plt.show()