3.8 神经网络解决逻辑运算问题-机器学习笔记-斯坦福吴恩达教授
神經(jīng)網(wǎng)絡(luò)解決邏輯運算問題
神經(jīng)網(wǎng)絡(luò)通過不同的架構(gòu)設(shè)置,來完成不同的任務(wù),比如我們看到一半的邏輯與運算:
x1ANDx2={1ifx1=1andx2=10otherwisex_1\ AND\ x_2=\begin{cases}1 \quad if\ x_1=1\ and \ x_2=1\\0\quad otherwise\end{cases}x1??AND?x2?={1if?x1?=1?and?x2?=10otherwise?
可以發(fā)現(xiàn),邏輯運算可以轉(zhuǎn)換為一個01分類問題。在sigmoid函數(shù)中:
g(4)≈1g(4)≈1g(4)≈1g(?4)≈0g(?4)≈0g(?4)≈0
因此,我們采用感知器神經(jīng)網(wǎng)絡(luò):
[x0x1x2]→[g(z(2))]→hΘ(x)\left[\begin{matrix}x_0\\x_1\\x_2\end{matrix}\right]\rightarrow\left[g(z^{(2)})\right]\rightarrow h_\Theta(x)???x0?x1?x2?????→[g(z(2))]→hΘ?(x)
并令:
Θ(1)=[?302020]\Theta^{(1)}=\left[-30\quad 20 \quad 20\right]Θ(1)=[?302020]
生成的神經(jīng)網(wǎng)絡(luò)如下圖所示:
得到的邏輯運算結(jié)果:
hΘ(x)=g(?30+20x1+20x2)h_\Theta(x) = g(-30+20x_1+20x_2)hΘ?(x)=g(?30+20x1?+20x2?)
x1=0andx2=0theng(?30)≈0x_1 = 0\ and\ x_2=0\ then\ g(-30)\approx 0x1?=0?and?x2?=0?then?g(?30)≈0x1=0andx2=1theng(?10)≈0x_1 = 0\ and\ x_2=1\ then\ g(-10)\approx 0x1?=0?and?x2?=1?then?g(?10)≈0x1=1andx2=0theng(?10)≈0x_1 = 1\ and\ x_2=0\ then\ g(-10)\approx 0x1?=1?and?x2?=0?then?g(?10)≈0x1=1andx2=1theng(10)≈0x_1 = 1\ and\ x_2=1\ then\ g(10)\approx 0x1?=1?and?x2?=1?then?g(10)≈0
當(dāng)然,這是手動進(jìn)行定義的參數(shù),我們也可以初始化如下樣本對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練:
X=[000100010001]X=\left[\begin{matrix} 0 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix}\right]X=?????0100?0010?0001??????
代碼及實現(xiàn)可以參看程序示例。
總結(jié)
以上是生活随笔為你收集整理的3.8 神经网络解决逻辑运算问题-机器学习笔记-斯坦福吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3.7 感知器-机器学习笔记-斯坦福吴恩
- 下一篇: 3.9 神经网络解决多分类问题-机器学习