吴恩达机器学习 第四周学习笔记

Neural Network:

1Non-linear Hypotheses:

在计算机视觉中的例子中,假设判断一个50*50像素的图像是否为一辆汽车,在逻辑回归中所构成的维数是2500个,那么他的一次项为2500个,二次项的数量为2500^2/2。导致了过于庞大的计算量。

2Model representation:

神经网络的逻辑单元:x0---x3为输入,theta被称为权重或者参数。


途中layer1为输入层,layer2为隐蔽层,layer3为输出层。在一个神经网络中可能会有多个隐蔽层。a(j)iai(j)


其中a(j)i为第j层第i个激励单元,它通过上一层的激励单元或输入与权重运算得到如:


3 Examples and intuitions

在课程中举例了一个同或运算的例子,将同或运算拆分成与运算和非与运算进行或操作。


与运算通过h(x)=g(x0*-30+x1*20+x2*20)表示。运算结果如图所示:


同样可以得到非与运算:h(x)=g(-30*x0+20*x1+20*x2)

在第二层神经网络中得到与运算与非与运算的值。

或运算:h(x)=g(-10*x0+20*x1+20*x2)

得到第三层神经网络完成同或运算。


4 Multiclass Classification

对于多分类问题,我们可以通过设置多个输出值来实现。具体在程序中,可以通过每个输出值 取最大值来判断属于哪一类。

5 编程作业

lrCostFunction.m:

function [J, grad] = lrCostFunction(theta, X, y, lambda)
m = length(y); % number of training examples

% You need to return the following variables correctly 
J = 0;
grad = zeros(size(theta));

J=1/m*(-y'*log(sigmoid(X*theta))-(1-y)'*log(1-sigmoid(X*theta)))+lambda/(2*m)*sum(theta(2:end).^2);
%J = 1/m * (-y' * log(sigmoid(X*theta)) - (1 - y')* log(1-sigmoid(X*theta))) + 
%lambda/2/m*sum(theta(2:end) .^ 2);
grad(1,:)=1/m*(X(:,1)'*(sigmoid(X*theta)-y));
grad(2:end, :) = 1/m * (X(:,2:end)'* (sigmoid(X*theta) - y)) + lambda/m*theta(2:end, :);



grad = grad(:);

end

oneVsAll.m:

function [all_theta] = oneVsAll(X, y, num_labels, lambda)

m = size(X, 1);
n = size(X, 2);

% You need to return the following variables correctly 
all_theta = zeros(num_labels, n + 1);

X = [ones(m, 1) X];



initial_theta = zeros(n+1, 1);
options = optimset('GradObj', 'on', 'MaxIter', 50);
for c = 1:num_labels
	all_theta(c,:)=fmincg (@(t)(lrCostFunction(t, X, (y == c), lambda)),initial_theta, options);
end



end

predictOneVsAll.m:

function p = predictOneVsAll(all_theta, X)

m = size(X, 1);
num_labels = size(all_theta, 1);

% You need to return the following variables correctly 
p = zeros(size(X, 1), 1);

% Add ones to the X data matrix
X = [ones(m, 1) X];



temp = all_theta * X';
[maxx, pp] = max(temp);
p = pp';

end

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值