原创 機器學習入門(16)— 卷積神經網絡中的池化層概念和特徵

1. 池化層的概念 池化是縮小高、長方向上的空間的運算。比如,如圖7-14 所示,進行將 2 × 2 的區域集約成 1 個元素的處理,縮小空間大小。 圖7-14 的例子是按步幅 2 進行2 × 2 的Max池化時的處理順序。Ma

原创 機器學習入門(11)— 反向傳播的加法節點、乘法節點、加法層代碼實現、乘法層代碼實現

1. 加法節點 以 z = x + y 爲對象,觀察它的反向傳播。z = x + y 的導數可由下式(解析性地)計算出來。 計算圖如圖 5-9 中,反向傳播將從上游傳過來的導數(本例中是 ∂L∂z\frac{\partial

原创 機器學習入門(12)— 激活函數層 ReLU、Sigmoid 層的實現

1. ReLU 函數層 激活函數 ReLU(Rectified Linear Unit)由下式(5.7)表示。 通過式(5.7),可以求出 y 關於 x 的導數,如式(5.8)所示。 在式(5.8)中,如果正向傳播時的輸入 x

原创 機器學習入門(14)— 神經網絡學習整體流程、誤差反向傳播代碼實現、誤差反向傳播梯度確認、誤差反向傳播使用示例

1. 神經網絡學習整體流程 神經網絡學習的步驟如下所示。 前提 神經網絡中有合適的權重和偏置,調整權重和偏置以便擬合訓練數據的過程稱爲學習。神經網絡的學習分爲下面 4 個步驟。 步驟1(mini-batch) 從訓練數據中隨機選

原创 機器學習入門(10)— 淺顯易懂的計算圖、鏈式法則講解

1. 計算圖概念 計算圖將計算過程用圖形表示出來。這裏說的圖形是數據結構圖,通過多個節點和邊表示(連接節點的直線稱爲“邊”)。 2. 計算圖求解 問題 1:小明在超市買了 2 個 100 日元一個的蘋果,消費稅是 10%,請計算支

原创 golang 同一個包中函數互相調用報錯 undefined 以及在 VSCode 中配置右鍵執行整個包文件

1. 代碼結構 demo 文件夾下有兩個文件,分別爲 hello.go 和 main.go ,結構如下: wohu@wohu:~/GoCode/src$ tree demo/ demo/ ├── hello.go └── main

原创 機器學習入門(09)— 偏導數、梯度概念、梯度下降法理論和實現

1. 偏導數概念 對於式 4-6 而言 式(4.6)有兩個變量,求導數時有必要區分對哪個變量求導數,即對 x0 和 x1 兩個變量中的哪一個求導數。另外,我們把這裏討論的有多個變量的函數的導數稱爲偏導數。用數學式表示的話,可

原创 Ubuntu 18 snap 佔用 100%,卸載 snap

1. 卸載 snap Ubuntu 18.04 安裝之後輸入 df -h 之後有很多 snap 佔用 100% ,如下所示。 wohu@ubuntu1804:~$ df -h Filesystem Size Used

原创 機器學習入門(08)— 損失函數作用和分類(均方誤差、交叉熵誤差)

神經網絡的學習中的“學習”是指從訓練數據中自動獲取最優權重參數的過程。 爲了使神經網絡能進行學習,將導入損失函數這一指標。而學習的目的就是以該損失函數爲基準,找出能使它的值達到最小的權重參數。爲了找出儘可能小的損失函數的值,我們將

原创 機器學習入門(13)— Affine 仿射層、Softmax 歸一化指數函數層實現

1. 一維 Affine 仿射層 我們回顧下之前爲了計算加權信號的總和,使用了矩陣的乘積運算 NumPy 中是 np.dot() , 參照代碼如下: In [7]: X = np.random.rand(2) In [8]:

原创 機器學習入門(15)— 全連接層與卷積層的區別、卷積神經網絡結構、卷積運算、填充、卷積步幅、三維數據卷積、多維卷積核運算以及批處理

卷積神經網絡(Convolutional Neural Network,CNN)CNN 被用於圖像識別、語音識別等各種場合,在圖像識別的比賽中,基於深度學習的方法幾乎都以 CNN 爲基礎。 1. 全連接層 1.1 全連接層網絡結構

原创 機器學習入門(04)— 神經網絡多維數組 NumPy 相乘運算

1. 多維數組 用 NumPy 構建多維數組代碼示例如下: In [1]: import numpy as np In [2]: A = np.array([1,2,3,4]) In [3]: A Out[3]: array(

原创 機器學習入門(06)— 輸出層多元分類、softmax 激活函數以及輸出層的神經元數量

輸出層所用的激活函數,要根據求解問題的性質決定。一般地, 迴歸問題可以使用恆等函數,也就是說會將輸入按原樣輸出; 二元分類問題可以使用 sigmoid 函數; 多元分類問題可以使用 softmax 函數; 1. softm

原创 機器學習入門(05)— 使用 NumPy 實現 3 層簡單神經網絡

我們以圖 3-15 的3 層神經網絡爲對象,實現從輸入到輸出的(前向)處理。在代碼實現方面,使用上一節介紹的 NumPy 多維數組。 1. 符號定義 2. 各層之間信號傳遞 從輸入層到第 1 層的 第1 個神經元的信號傳遞過程

原创 機器學習入門(03)— 激活函數分類(階躍函數和 sigmoid 函數的理論、實現、顯示以及區別、非線性函數、ReLU 函數)

1. 階躍函數 1.1 理論 式(3.3)表示的激活函數以閾值爲界,一旦輸入超過閾值,就切換輸出。這樣的函數稱爲“階躍函數” 因此,可以說感知機中使用了階躍函數作爲激活函數。也就是說,在激活函數的衆多候選函數中,感知機使用了階躍