找回密码
 立即注册
搜索

吴恩达的Python机器学习课程,你学到哪一步了?

点击上方关注,All in AI中国



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



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



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



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



计算成本函数和梯度



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






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



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





alpha = 1,num_iters = 300


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



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



运用前馈传播停止预测



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



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






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



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



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






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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评3

特战土狼 2019-2-18 10:01:23 显示全部楼层
看到吴恩达,我就想起了吴承恩,想起了他创造的美猴王孙悟空。往年下半年中美合拍的新版西游记就要正式开机了,还是由我来扮演孙悟空…文体两开花…希望大家能继续支持我
回复

使用道具 举报

wyydeai 2019-2-18 17:48:24 显示全部楼层
有没有什么需要注意的?
回复

使用道具 举报

秋朵·樱 2019-2-19 09:37:41 显示全部楼层
加油!不要理那些键盘侠!
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies