深度学习入门(三)深度学习总览

Apr 2, 2018


原创:岐山凤鸣

这几个月做深度学习相关的东西,不知不觉学会了很多的神经网络,苦于一直没有时间系统化的做一个笔记或者教程,就从这里开始吧。

这一篇就是一个总览,提供一些名词与链接。

环境:macOS-10.13.4, Python-3.6, Tensorflow-1.4.1

神经网络

什么是神经网络?是描述深度学习的一种模型。

神经网络的基石?大量的数据,根据大量的数据,通过神经网络找到数据的规律。

神经网络有哪些层?输入层、隐藏层、输出层。

神经网络怎么分类?最简单的就是按层数,或者按有没有监督。

神经网络用来干嘛?(图像、文本、语音)分类、识别、预测。更高级的就是人工智能。

神经网络的进阶?迁移学习(之前的工作复用),强化学习(通过反馈进行修正, Alpha Go的核心)

神经网络的基本流程? 下面要说的就是。

神经网络基本流程

搭一个神经网络从头到尾怎么搞?其实很简单…..

Step1: 收集大量的数据,可以带标签的,也可以不带标签的,得到训练集,测试集,验证集。如果听不懂这一句话的吧,可以先学习一下简单的机器学习

Step2: 人工构建神经网络的结构,有多少个输入层结点,有多少个隐藏层,隐藏层里有多少个运算的结点。所以这个简单的结构说到底就是描述有多少层,每个层都有多少个运算结点。

Step3: 定义层与层之间的运算,也就是定义激励函数,是线性的还是非线性的,非线性的选哪种。

Step4: 定义loss和optimizer,如何定义损失,是做差,还是平方差,还是log差。如何优化,是梯度下降,还是随机下降。

Step5: 开始用训练集来训练,训练多少次,需不需要分步训练,需不需要训练时保存参数,需不需要训练时调用参数。

Step6: 开始用测试集来测试,测试多少次,每次测试怎么调参,需不需要考虑别的东西。

Step7: 开始用验证集来验证,仅仅验证一次,验证准确率呀,看看效果如何。

Step8: 把结构和参数保存,这样就是一个已经OK了的网络,以后可以直接调用。

有哪些比较经典的神经网络呢

不全,没有分类,具体遇到什么问题的时候,比如识别?分类?预测?然后看看有没有人用过下述网络做过类似的问题,有的话就认真看一下。

强化学习: