rainit2006 / Artificial-Intelligence

1 stars 0 forks source link

机器学习 #5

Open rainit2006 opened 7 years ago

rainit2006 commented 7 years ago

通俗易懂的文章 https://www.zhihu.com/question/22553761

rainit2006 commented 7 years ago

卷积神经网络 CNN (Convolutional Neural Network) 卷积也就是说神经网络不再是对每个像素的输入信息做处理了,而是图片上每一小块像素区域进行处理, 这种做法加强了图片信息的连续性. 使得神经网络能看到图形, 而非一个点. 这种做法同时也加深了神经网络对图片的理解. 具体来说, 卷积神经网络有一个批量过滤器, 持续不断的在图片上滚动收集图片里的信息,每一次收集的时候都只是收集一小块像素区域, 然后把收集来的信息进行整理, 这时候整理出来的信息有了一些实际上的呈现, 比如这时的神经网络能看到一些边缘的图片信息, 然后在以同样的步骤, 用类似的批量过滤器扫过产生的这些边缘信息, 神经网络从这些边缘信息里面总结出更高层的信息结构,比如说总结的边缘能够画出眼睛,鼻子等等. 再经过一次过滤, 脸部的信息也从这些眼睛鼻子的信息中被总结出来. 最后我们再把这些信息套入几层普通的全连接神经层进行分类, 这样就能得到输入的图片能被分为哪一类的结果了.

池化(pooling) 研究发现, 在每一次卷积的时候, 神经层可能会无意地丢失一些信息. 这时, 池化 (pooling) 就可以很好地解决这一问题. 也就是说在卷集的时候, 我们不压缩长宽, 尽量地保留更多信息, 压缩的工作就交给池化了,这样的一项附加工作能够很有效的提高准确性. 有了这些技术,我们就可以搭建一个属于我们自己的卷积神经网络啦.

循环神经网络 RNN (Recurrent Neural Network) 应用: 1,比如说一个人说了一句话, 这句话带的感情色彩是积极的还是消极的. 那我们就可以用只有最后一个时间点输出判断结果的RNN. 2, 语言翻译的 RNN, 给出一段英文, 然后再翻译成中文. 3,图片描述 RNN: 我们只需要一个 X 来代替输入的图片, 然后生成对图片描述的一段话.

问题: 1,梯度消失或者梯度弥散 Gradient vanishing. 2,剃度爆炸, Gradient exploding. --> 普通 RNN 没有办法回忆起久远记忆

LSTM RNN 循环神经网络 (LSTM) 为了解决RNN的失忆问题。 LSTM 和普通 RNN 相比, 多出了三个控制器. (输入控制, 输出控制, 忘记控制).

rainit2006 commented 7 years ago

自编码 (Autoencoder) 神经网络分析处理图片的时候,经过了压缩,再解压的这一道工序。 当压缩的时候, 原有的图片质量被缩减, 解压时用信息量小却包含了所有关键信息的文件恢复出原本的图片. image

rainit2006 commented 7 years ago

生成对抗网络 (GAN) 有另外一种形式的神经网络, 他不是用来把数据对应上结果的, 而是用来”凭空”捏造结果, 这就是我们要说的生成网络啦. GAN 就是其中的一种形式. 那么 GAN 是怎么做到的呢? 当然这里的”凭空”并不是什么都没有的空盒子, 而是一些随机数. 我们就是用没有意义的随机数来生成有有意义的作品, 比如著名画作. image

rainit2006 commented 7 years ago

神经网络 梯度下降 (Gradient Descent)

-全局/局部最优 W 的全局最优解(Global minima)在这个位置, 而其它的 解都是局部最优(Local minima). 全局最优固然是最好, 但是很多时候, 你手中的都是一个局部最优解, 这也是无可避免的. 不过你可以不必担心, 因为虽然不是全局最优, 但是神经网络也能让你的局部最优足够优秀, 以至于即使拿着一个局部最优也能出色的完成手中的任务. image

rainit2006 commented 7 years ago

检验神经网络 (Evaluation)

对于回归的问题: 怎样看预测值是连续数字的精确度? 可以引用 R2 分数在测量回归问题的精度 . R2给出的最大精度也是100%,

所以分类和回归就都有的统一的精度标准.

横坐标不再是学习时间, 而是你要测试的某一参数 (比如说神经网络层数) . 我们逐渐增加神经层, 然后对于每一个不同层结构的神经网络求出最终的误差或精度, 画在图中. 我们知道, 神经层越多, 计算机所需要消耗的时间和资源就越多, 所以我们只需要找到那个能满足误差要求, 有节约资源的层结构. 比如说误差在0.005一下都能接受 , 那我们就可以采用30层的神经网络结构 .

rainit2006 commented 7 years ago

特征标准化 (Feature Normalization) 我们在机器学习训练之前, 先对数据预先处理一下, 取值跨度大的特征数据, 我们浓缩一下, 跨度小的括展一下, 使得他们的跨度尽量统一. image 通常用于 特征标准化的途径有两种, 一种叫做 min max normalization, 他会将所有特征数据按比例缩放到0-1的这个取值区间. 有时也可以是-1到1的区间. 还有一种叫做 standard deviation normalization, 他会将所有特征数据缩放成 平均值为0, 方差为1. 使用这些标准化手段. 我们不仅可以快速推进机器学习的学习速度, 还可以避免机器学习 学得特扭曲.

选择好特征 (Good Features) 在选择特征的时候,我们得要时刻回想起这三点. 避免无意义的信息, 避免重复性的信息, 避免复杂的信息. 这就是我们这次机器学习简介中所聊到的如何区分好用的特征.

rainit2006 commented 7 years ago

激励函数 (Activation Function)

在具体的例子中, 我们默认首选的激励函数是哪些. 在少量层结构中, 我们可以尝试很多种不同的激励函数. 在卷积神经网络 Convolutional neural networks 的卷积层中, 推荐的激励函数是 relu. 在循环神经网络中 recurrent neural networks, 推荐的是 tanh 或者是 relu

rainit2006 commented 7 years ago

过拟合 (Overfitting) 数据训练时为了追求低误差,导致得到一个不理想的结果无法去应对更多的数据。 解决过拟合的办法: 方法一: 增加数据量, 大部分过拟合产生的原因是因为数据量太少了. 方法二:运用正规化. L1, l2 regularization等等, 这些方法适用于大多数的机器学习, 包括神经网络.