Stanford 机器学习 Week5 作业: Neural Networks: Learning
来源:互联网 发布:java ssh 远程服务器 编辑:程序博客网 时间:2024/04/30 14:53
randInitializeWeight
epsilon_init = 0.12;W = rand(L_out, 1 + L_in) * 2 * epsilon_init - epsilon_init;
sigmoidGradient
g = sigmoid(z) .* (1 - sigmoid(z));
nnCostFunction
Theta1 = reshape(nn_params(1:hidden_layer_size * (input_layer_size + 1)), ...hidden_layer_size, (input_layer_size + 1));Theta2 = reshape(nn_params((1 + (hidden_layer_size * (input_layer_size + 1))):end), ... num_labels, (hidden_layer_size + 1));J = 0;Theta1_grad = zeros(size(Theta1));Theta2_grad = zeros(size(Theta2));a1 = [ones(m,1) X];z2 = a1 * Theta1';a2 = sigmoid(z2);a2 = [ones(m,1) a2];z3 = a2 * Theta2';preOut = sigmoid(z3);trueOut = zeros(size(preOut));for i = 1:m trueOut(i,y(i)) = 1;endtmp = trueOut .* log(preOut) + (1 - trueOut) .* log(1 - preOut);J = -1.0/m * sum(tmp(:));t1 = Theta1(:,2:end) .* Theta1(:,2:end);t2 = Theta2(:,2:end) .* Theta2(:,2:end);J = J + lambda / 2 / m * (sum(t1(:)) + sum(t2(:)));epi3 = (preOut - trueOut)';epi2 = Theta2(:,2:end)' * epi3 .* sigmoidGradient(z2)';Theta2_grad = (Theta2_grad + epi3 * a2) / m;Theta1_grad = (Theta1_grad + epi2 * a1) / m;Theta2_grad(:,2:end) = Theta2_grad(:,2:end) + lambda / m * Theta2(:,2:end);Theta1_grad(:,2:end) = Theta1_grad(:,2:end) + lambda / m * Theta1(:,2:end);
这段代码调了一段时间,虽然题目建议写成loop的,我还是用向量化实现了。
几个重点:
1.ai是包含bias unit的,epi,zi是不包含bias unit的
2.epi是unitnum * m 的,而不是相反
0 0
- Stanford 机器学习 Week5 作业: Neural Networks: Learning
- Stanford 机器学习笔记 Week5 Neural Networks: Learning
- [Coursera机器学习]Neural Networks Learning WEEK5编程作业
- NG机器学习week5 Neural Networks: Learning
- Stanford 机器学习-Neural Networks learning
- Andrew Ng机器学习week5(Neural Networks: Learning)编程习题
- Stanford机器学习---神经网络的学习 Neural Networks learning
- 【Stanford机器学习笔记】7-Neural Networks: Learning
- Andrew NG 机器学习 笔记-week5-神经网络的学习(Neural Networks:Learning)
- Stanford机器学习 -- Neural Networks 的学习
- 斯坦福机器学习视频笔记 Week4&Week5 神经网络 Neural Networks
- Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning
- Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning
- Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning
- Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning
- Stanford机器学习---第5讲. 神经网络的学习 Neural Networks learning
- Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning
- Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning
- 顺丰科技工作期间,遇到的问题和解决方法记录
- [求助]OpenCV:识别四边形的四个角点问题,待解决
- Android JSBridge的原理与实现
- Oralce备份恢复优秀文摘
- 判断现有(输入的字符串是否相等)
- Stanford 机器学习 Week5 作业: Neural Networks: Learning
- 怎么查看编译的Linux内核源代码的版本信息
- [疯狂Java笔记]图形用户界面、AWT、Swing简介
- gulp压缩js和css
- POJ-1584-A Round Peg in a Ground Hole-计算几何-凸多边形+多边形包含圆
- JSP_004_Cookie介绍02—Cookie的最大生命和Cookie的path
- js中小数向上取整数,向下取整数,四舍五入取整数的实现。
- 机器学习中的训练集,验证集及测试集的关系
- 关于jQuery $(selector).addClass(class) IE8 兼容的说法