为了更好的学习,充分复习自己学习的知识,总结课内重要知识点,每次完成作业后
都会更博。
总结
1.神经网络代价函数
2.后向算法(被用来最小化代价函数)
(1)误差
a. 第四层输出误差表示为δj4 = aj4 - yj δ4 = a4 - y
b.因为g'(z3) = a3 . * (1 - a3),所以δ3 = (Ɵ3)T δ4 . *(a3 . * (1 - a3))
c. = ajl δi(l+1)
d.
3.反向传播视觉化
(1)前向传播
(2)后向传播
作业
1.载入和可视化数据
clear ; close all; clc
input_layer_size = 400; % 20x20 输入像素点
hidden_layer_size = 25; % 25 个隐藏单元
num_labels = 10;
load('ex3data1.mat');
m = size(X, 1);
sel = randperm(size(X, 1));
sel = sel(1:100);
displayData(X(sel, :));
2.载入参数
load('ex3weights.mat');
3.实施预测
pred = predict(Theta1, Theta2, X);
rp = randperm(m);
for i = 1:m
displayData(X(rp(i), :));% 可视化
pred = predict(Theta1, Theta2, X(rp(i),:));
s = input('Paused - press enter to continue, q to exit:','s');
if s == 'q'
break
end
end
%预测函数
m = size(X, 1);
num_labels = size(Theta2, 1);
p = zeros(size(X, 1), 1);
X =[ones(m,1),X];
a2 = sigmoid(X* Theta1');
a2 = [ones(m,1),a2];
a3 = sigmoid(a2 *Theta2');
[aa,p] = max(a3,[],2);
end