智客公社

标题: 吴恩达的Python机器学习课程,你学到哪一步了? [打印本页]

作者: 新鲜旧情人い    时间: 2019-2-18 09:54
标题: 吴恩达的Python机器学习课程,你学到哪一步了?
点击上方关注,All in AI中国

[attach]102264[/attach]


本文将引见吴恩达的机器学习课程中关于神经网络的编程作业3和4。这也是我们在课程中遇到的第一个复杂的非线性算法。我不了解你,但这个义务对于我来说一定有一个峻峭的学习曲线。神经网络构成了深度学习的基础,它具有广泛的运用,如计算机视觉或自然言语处理。因此,重要的是获得基本权益并在python中编码这些赋值是确保这一点的一种方法。
在进入神经网络之前,让我们完成逻辑回归的最后一节 - 多类Logistic回归。
该系列练习应用由5000个训练示例组成的手写数字数据集,其中每个示例都是20×20像素的数字灰度图像。
加载数据集

[attach]102265[/attach]


由于数据集是以.mat格式而不是通常的.txt格式给出的,因此我需求运用scipy loadmat函数。官方文档可以在这里找到。(https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.io.loadmat.html)由于loadmat将.mat文件作为带有变量称号作为键的字典加载,因此分配X和y就像运用变量的键访问dict一样简单。

[attach]102266[/attach]


为了更好地了解数据集,具有数据的外形可以告诉我们数据的维度。 X外形为5000,400,其对应5000个训练示例,每个示例具有来自其20×20像素的400个特征。 y具有5000,1的外形,其中每个训练示例具有范围从1到10的标签(在该数据集中'0'数字被标记为'10')。
可视化数据

[attach]102267[/attach]


下面的代码块构造了100个子图,并运用plt.imshow随机可视化5000个训练示例中的100个。请留意,我们必须将训练示例重新塑造为20 X 20像素,才能将其可视化并将order =“F”作为参数添加到重塑功能中,以确保图像的方向是垂直的。

[attach]102268[/attach]


计算成本函数和梯度

[attach]102269[/attach]


这相似于我们在Logistic回归分配中运用的成本函数。

[attach]102270[/attach]



[attach]102271[/attach]


如今停止分类义务。由于我们有多个类,我们必须运用一对一分类方法(每个类一个分类器)训练多个逻辑回归分类器。

[attach]102272[/attach]


gradientDescent函数是我们之前完成的常用优化函数。对于oneVsAll,它遍历一切的类,并运用梯度下降(作业中运用了fmincg函数)为每个类训练一组。然后all_theta捕获列表中的一切优化的theta并前往为numpy数组,重新塑造为theta的矩阵,其中第i行对应于标签i的分类器。 np.where在这里派上用场,为每个类得到一个y的向量,每个类的向量有1/0,以便在每次迭代中停止二进制分类义务。
绘制成本函数以确保梯度下降按预期工作

[attach]102273[/attach]



[attach]102274[/attach]

alpha = 1,num_iters = 300


为了停止预测,计算每个类的x(i)的概率,并且预测为具有最高概率的类

[attach]102275[/attach]


训练集准确度:91.46%
最后,神经网络的工夫。运用相反的数据集,我们的目的是运用更复杂的算法(如神经网络)完成更高的精度。对于练习的第一部分,我们给出了优化的θ值,我们需求停止前馈传播以获得预测和模型精度。
加载优化的theta

[attach]102276[/attach]


运用前馈传播停止预测

[attach]102277[/attach]


训练集准确度:97.52%。与多级逻辑回归相比,准确度更高!
在作业4中,我们努力于从头末尾完成神经网络。我们首先计算成本函数和θ的梯度。

[attach]102278[/attach]


该作业分步骤停止,首先是正则化成本、梯度,最后是正则化梯度。假如你想继续,我修正了代码,只需你运用正确的索引,它就会前往中间步骤的值。

[attach]102279[/attach]



[attach]102280[/attach]


flatten()函数将数组折叠为一维,np.append将参数“展开”为向量。
在讲座中讨论了初始theta的对称性成绩。为了打破这种对称性,需求随机初始化。

[attach]102281[/attach]


最后,轮到我们运用前馈传播和反向传播来优化θ值。我正在运用的优化算法再次是相反的旧梯度下降。

[attach]102282[/attach]


对执行代码的人发出正告。根据您的计算才能计算需求相当长的工夫,假如您正在优化alpha和num_iters值,则需求更长的工夫。我运用0.8表示alpha,对num_iters运用800,但我置信运用更多的tunnin可以获得更好的准确性。

[attach]102283[/attach]



[attach]102284[/attach]


GitHub传送门: (https://github.com/benlau93 / machine - learning by andrew - ng- in- python)
后续等待
来源:https://towardsdatascience.com/andrew-ngs-machine-learning-course-in-python-neural-networks-e526b41fdcd9

[attach]102285[/attach]

作者: 特战土狼    时间: 2019-2-18 10:01
看到吴恩达,我就想起了吴承恩,想起了他创造的美猴王孙悟空。往年下半年中美合拍的新版西游记就要正式开机了,还是由我来扮演孙悟空…文体两开花…希望大家能继续支持我
作者: wyydeai    时间: 2019-2-18 17:48
有没有什么需要注意的?
作者: 秋朵·樱    时间: 2019-2-19 09:37
加油!不要理那些键盘侠!




欢迎光临 智客公社 (http://bbs.cnaiplus.com/) Powered by Discuz! X3.4