TensorFlow的官方代码看来看去,发现最大的问题在于自己没有基本功,一天吃成胖子的想法告吹,回过头乖乖从基础开始。
从吴恩达老师的深度学习工程师课程入手,配合周志华老师的《机器学习》“西瓜书”,打好基本功,再战TensorFlow!
放一张吴恩达老师的照片,开开光,认真学完微专业!(吴恩达老师英语太好听了!(✧◡✧))
皮一下,总觉得吴恩达老师长得有点像Z Nation的Pisay Pao。(*/ω\*)溜了溜了。。。。
P.S. 图片均来自吴恩达老师的课堂板书
---------------------------------------------------------开始学习----------------------------------------------------
绪论 课程学习的目标
课程学习的内容有:
1. 神经网络与深度学习
2. 改进的深层神经网络:超参数调优(hyperparameter tuning)、正则化(regularization)与最优化(optimization)
3. 建立自己的机器学习工程
4. 卷积神经网络
5. 自然语言的处理:建立序列模型
第一课 什么是神经网络
老师说深度学习(Deep Learning,下文中简称DL)就是训练神经网络,那么什么是神经网络?
课程以房价预测为引例,我们拥有几组房价和房子大小的数据,我们想找到它们之间的关系。
那么很轻易,我们绘制出了蓝色的直线,但是伴随着直线走势,房价会出现负值,显然不符合实际情况,于是我们将这条直线进行改进(矫正rectify),变成了非线性函数ReLU。
而神经元,就是进行了这样一个过程,我给定一个(组)x,通过一个非线性函数,得到一个输出y。(建立y与x的映射关系)
like this.
日常生活中,决定房价的因素很多,除了房价大小,譬如有多少间卧室、房子的地段(邮编反应)、社区的富裕化程度等等,因此我们使用单一神经元已经无法胜任预测任务,那么我就像玩乐高积木那样,将多个神经元组合,变为神经网络。
道理同神经元那般,我们给定一组输入,神经网络自动得出一个输出。(建立y与x的精确映射关系)
最左边叫做输入层,中间为隐藏层,最右边为输出层。这就是一个神经网络。
第二课 用神经网络进行监督学习
先说监督学习,就是在已知预期结果的前提下训练神经网络,通过这个方法找到合适的参数。
监督学习通常用来做“分类”和“回归”问题。
这里看西瓜书明白一个道理:预测离散值时是分离问题,预测连续值是回归问题。
紧接着,吴恩达老师例举了一些神经网络的应用:
房价预测已经说过,第二个是广告投放。我们以广告类型和用户数据作为输入,以用户是否点击作为输出,就可精准投放广告。西瓜书说因为引入神经网络,广告投放准确率上升14%,甚至对奥巴马12年大选都产生了影响!第三个是图像识别,下来是语义识别,翻译和自动驾驶。
而对于不同的数据类型,要使用不同的神经网络。
对于房价和广告,使用标准神经网络SNN。
对于图像使用卷积神经网络CNN。
对于语义识别和翻译这种具有时序性的数据使用循环神经网络RNN。
而对于自动驾驶需要输入图像和雷达信息的,我们使用混合神经网络。
而数据类型分为结构行数据类型&非结构性数据类型: