这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛。这门课程对想要了解和初步掌握机器学习的人来说是不二的选择。这门课程涵盖了机器学习的一些基本概念和方法,同时这门课程的编程作业对于掌握这些概念和方法起到了巨大的作用。

课程地址 https://www.coursera.org/learn/machine-learning

笔记主要是简要记录下课程内容,以及MATLAB编程作业....

Neural Networks

Week4 编程作业核心代码

nnCostFunction.m

 1 %首先把原先label表示的y变成向量模式的output
2 y_vect = zeros(m,num_labels); %5000x10
3 for i = 1:m,
4 y_vect(i,y(i)) = 1;
5 end;
6
7 a1 = [ones(m, 1) X];
8 z2 = a1 * Theta1';
9 a2 = sigmoid(z2); % 5000 x 25
10 a2 = [ones(m,1) a2]; % 5000 x 26
11 z3 = a2 * Theta2'; % 5000 x 10
12 a3 = sigmoid(z3); % 5000 x 10
13
14 for i = 1:m
15 J = J + sum(-1*y_vect(i,:).*log(a3(i,:))-(1-y_vect(i,:)).*log(1-a3(i,:)));
16 end
17 J = J/m;
18 J = J + lambda*(sum(sum(Theta1(:,2:end).^2))+sum(sum(Theta2(:,2:end).^2)))/2/m;
19
20 %backward propagation
21 Delta1 = zeros(size(Theta1)); %25x401
22 Delta2 = zeros(size(Theta2)); %10x26
23 for i=1:m
24 delta3 = a3(i,:)' - y_vect(i,:)'; %10x1
25 tempTheta2 = Theta2' * delta3; % 26x10x10x1 = 26x1
26 delta2 = tempTheta2(2:end) .* sigmoidGradient(z2(i,:)'); %25x1
27 Delta2 = Delta2 + delta3 * a2(i,:); % 10x1x1x26
28 Delta1 = Delta1 + delta2 * a1(i,:); %25x1x1x401
29 end;
30
31 Theta2_grad = Delta2/m;
32 Theta1_grad = Delta1/m;
33
34 %regularization gradient
35
36 Theta2_grad(:,2:end) = Theta2_grad(:,2:end) + lambda * Theta2(:,2:end) / m;
37 Theta1_grad(:,2:end) = Theta1_grad(:,2:end) + lambda * Theta1(:,2:end) / m;
38

sigmoidGradient.m

1 g = sigmoid(z) .* ( 1 - sigmoid(z));

Andrew Ng 的 Machine Learning 课程学习 (week5) Neural Network Learning的更多相关文章

  1. matlab基础教程——根据Andrew Ng的machine learning整理

    matlab基础教程--根据Andrew Ng的machine learning整理 基本运算 算数运算 逻辑运算 格式化输出 小数位全局修改 向量和矩阵运算 矩阵操作 申明一个矩阵或向量 快速建立一 ...

  2. [C5] Andrew Ng - Structuring Machine Learning Projects

    About this Course You will learn how to build a successful machine learning project. If you aspire t ...

  3. (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem

    (转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...

  4. 【RS】Automatic recommendation technology for learning resources with convolutional neural network - 基于卷积神经网络的学习资源自动推荐技术

    [论文标题]Automatic recommendation technology for learning resources with convolutional neural network ( ...

  5. Deep Learning: Assuming a deep neural network is properly regulated, can adding more layers actually make the performance degrade?

    Deep Learning: Assuming a deep neural network is properly regulated, can adding more layers actually ...

  6. Andrew Ng 的 Machine Learning 课程学习 (week4) Multi-class Classification and Neural Networks

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  7. Andrew Ng 的 Machine Learning 课程学习 (week3) Logistic Regression

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  8. Andrew Ng 的 Machine Learning 课程学习 (week2) Linear Regression

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  9. Logistic回归Cost函数和J(θ)的推导----Andrew Ng【machine learning】公开课

    最近翻Peter Harrington的<机器学习实战>,看到Logistic回归那一章有点小的疑问. 作者在简单介绍Logistic回归的原理后,立即给出了梯度上升算法的code:从算法 ...

随机推荐

  1. c#百分比计算

    //此方法得到的百分比后小数太多,不行double percent=Convert.ToDouble(2)/Convert.ToDouble(34); string result=(percent*1 ...

  2. SAP 740GUI客户端快捷方式取消密码登陆

    客户端电脑:WIN10 专业版64位. 1. 进入注册表编辑器(regedit) .进入如下路径:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\SAP\SAPLogo ...

  3. Gym - 101845K 排序+概率

    The UNAL programming coaches have lost a bet, they bet the 6 UNAL teams would occupy the first six p ...

  4. BaseNavigationController自定义导航栏

    #import <UIKit/UIKit.h> @interface RCDNavigationViewController : UINavigationController<UIG ...

  5. Qt 学习之路 2(8):添加动作

    Home / Qt 学习之路 2 / Qt 学习之路 2(8):添加动作       [在WINDOWS10 QTCREATOR MENU添加无效]   Qt 学习之路 2(8):添加动作  豆子   ...

  6. php版 日文半角转全角

    工作需要,写的这个 /* *转载请注明 http://www.cnblogs.com/kclteam/p/5278923.html$str //参数可以是字符串或数组*/ function HkToF ...

  7. 面试题 和 python 2与3的期区别

      1.3 python2与python3的一些区别 大环境下的区别:python2:1,源码都含有php,Java,C,等语言的规范陋习,2,重复代码特别多. python3:源码很规范,清晰,简单 ...

  8. ftp 添加用户及修改用户目录

    添加用户 : useradd 用户名 -s /sbin/nologin //限定用户test不能telnet,只能ftp; usermod -s /sbin/bash 用户名 //用户恢复正常 ;该账 ...

  9. poj1094 拓扑排序(出度入度简单使用)

    Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 37764   Accepted: 13 ...

  10. Codeforces 852D

    数目规模大,尝试转换为判定性问题,那么E就不影响到网络流的复杂度了 SPFA码歪了,WA了好几发气死了 #include<bits/stdc++.h> using namespace st ...