原创:岐山凤鸣
这几个月做深度学习相关的东西,不知不觉学会了很多的神经网络,苦于一直没有时间系统化的做一个笔记或者教程,就从这里开始吧。
这一篇就是一个总览,提供一些名词与链接。
环境: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了的网络,以后可以直接调用。
有哪些比较经典的神经网络呢
不全,没有分类,具体遇到什么问题的时候,比如识别?分类?预测?然后看看有没有人用过下述网络做过类似的问题,有的话就认真看一下。
- BP(反向传播网络)
- RBM(限制玻尔兹曼机)
- DBN(深度信念网络)
- DAE(降噪自动编码器)
- SAE(稀疏自编码器)
- 重点!CNN(卷积神经网络)
- FCN(全卷积网络)
- GAN(生成对抗网络)
- NIN(网络中网路)
- RNN(递归神经网络)
- LSTM(长短期记忆网络)
- Attention(注意力机制)
- RNTN(递归张量神经网络),自然语言处理
- MC(马尔可夫链),自然语言处理
- FF(前馈神经网络)
- RBF(Radial Basis Network)
- DFF(深度前馈神经网络)
- HN(霍普菲尔网络)
- LSM(液体状态机)
- ELM(极端学习机)
- ESN(回声状态网络)
- DRN(深度残差网络)
- KN(Kohonen神经网络)
- NTM(神经图灵机)
强化学习: