rainit2006 / Artificial-Intelligence

1 stars 0 forks source link

神经网络 #4

Open rainit2006 opened 7 years ago

rainit2006 commented 7 years ago

rainit2006 commented 7 years ago

神经网络的训练

rainit2006 commented 6 years ago

https://www.jiqizhixin.com/articles/2016-09-20

-仿射层(Affine Layer) 神经网络中的一个全连接层。仿射(Affine)的意思是前面一层中的每一个神经元都连接到当前层中的每一个神经元。在许多方面,这是神经网络的「标准」层。仿射层通常被加在卷积神经网络或循环神经网络做出最终预测前的输出的顶层。仿射层的一般形式为 y = f(Wx + b),其中 x 是层输入,w 是参数,b 是一个偏差矢量,f 是一个非线性激活函数。

-Binary Cross Entropy

rainit2006 commented 6 years ago

在进行机器学习任务时,使用的每一个算法都有一个目标函数,算法便是对这个目标函数进行优化,特别是在分类或者回归任务中,便是使用损失函数(Loss Function)作为其目标函数,又称为代价函数(Cost Function)。

-目标函数(objective function) 每一个算法都有一个目标函数(objective function),算法就是让这个目标函数达到最优。

对于分类的算法,都会有对错。错了就会有代价,或者说是损失。分类算法的目标就是让它错的最少,也就是代价最小。所以对于分类算法,它的目标函数就是代价函数(cost function),或者是损失函数(loss function)。

https://www.zhihu.com/question/52398145

有三个函数依次为f(x1) , f(x2) , f(x3) 。我们是想用这三个函数分别来拟合Price,Price的真实值记为 y 。我们给定x ,这三个函数都会输出一个f(x) ,这个输出的 f(x)与真实值 y 可能是相同的,也可能是不同的。 为了表示我们拟合的好坏,我们就用一个函数来度量拟合的程度,比如: (y, f(x)) = (y-f(x))^2,这个函数就称为损失函数(loss function),或者叫代价函数(cost function)。 损失函数越小,就代表模型拟合的越好。

那是不是我们的目标就只是让loss function越小越好呢?还不是。这个时候还有一个概念叫风险函数(risk function)。 风险函数是损失函数的期望,这是由于我们输入输出的(x, y) 遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。但是我们是有历史数据的,就是我们的训练集, f(x)关于训练集的平均损失称作经验风险(empirical risk),即 image ,所以我们的目标就是最小化 image ,称为经验风险最小化。

同时,还需要定义一个函数 J(f) ,这个函数专门用来度量模型的复杂度。在机器学习中也叫正则化(regularization)。常用的有 L_1 , L_2 范数。

到这一步我们就可以说我们最终的优化函数是: image最优化经验风险结构风险(cost function),而这个函数就被称为目标函数image

rainit2006 commented 6 years ago

合成積(畳み込み)、Convolution、卷积 合成積(畳み込み)は「二つの関数」から「一つの関数」を作る演算です。

連続版(畳み込み積分) 二つの関数 f(x)f(x) と g(x)g(x) から以下のような操作をして新しい関数 h(x)h(x) を作ります: image

離散版(畳み込み和) 定義域が整数値であるような二つの関数(数列)anan と bnbn から以下のような操作をして新しい数列 cncn を作ります: image


CNN 卷积神经网络 通俗易懂的讲解:http://dataunion.org/11692.html

关键词: 局部感知 image 参数共享(权值共享) 从一个大尺寸图像中随机选取一小块,比如说 8×8 作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个 8×8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,我们可以用从 8×8 样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。 image 多卷积核 1种卷积核往往不够用,可以添加多个卷积核,比如32个卷积核,可以学习32种特征。 每个卷积核都会将图像生成为另一幅图像。比如两个卷积核就可以将生成两幅图像,这两幅图像可以看做是一张图像的不同的通道。

Down-pooling 在通过卷积获得了特征 (features) 之后,下一步我们希望利用这些特征去做分类。 为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)。这些概要统计特征不仅具有低得多的维度 (相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化 (pooling),有时也称为平均池化或者最大池化 (取决于计算池化的方法)image

多层卷积 在实际应用中,往往使用多层卷积,然后再使用全连接层进行训练。 多层卷积的目的是一层卷积学到的特征往往是局部的,层数越高,学到的特征就越全局化。

image

書いてある図形が○か×かを判定するタスクを考えてみます 画像上にフィルタと呼ばれる小領域(下図では赤枠の4x4のエリア)をとり、これを1つの特徴量として圧縮し(=畳み込み)ます image

image このフィルタを使った「畳み込む」という処理は、具体的には「フィルタ内の画像のベクトル」と「畳み込みに使用するベクトル」との間の掛け算、内積になります。 以下では、32x32x3の画像(32x32のRGB画像)に対して、5x5x3のフィルタを適用しています。 これにより、(スライド幅が1の場合)最終的には28x28x1のレイヤが作成されます。 image そして、フィルタの種類を増やせばその分Convolution Layerも増えていくことになります。以下では6つのフィルタで6つのレイヤを作成しています。 image

CNNにおけるレイヤの種類としては、Convolutional Layerも含めて以下の3つがあります。 ・Convolutional Layer: 特徴量の畳み込みを行う層 ・Pooling Layer: レイヤの縮小を行い、扱いやすくするための層 ・Fully Connected Layer: 特徴量から、最終的な判定を行う層 image

http://qiita.com/icoxfog417/items/5fd55fad152231d706c2

ちなみに、Max Pooling:各領域内の最大値をとって圧縮を行う方法 image

rainit2006 commented 6 years ago

再帰型ニューラルネットワーク, Recurrent Neural Network 自然言語処理の分野で高い成果をあげた

RNNの利点は文章など連続的な情報を利用できる点です。 従来のニューラルネットワークの考え方はそうではなく、インプットデータ(またアウトプットデータも)は互いに独立の状態にある、と仮定します。しかしこの仮定は多くの場合、適切ではありません。例えば次の言葉を予測したい場合、その前の言葉が何だったのかを知っておくべきですよね?RNNのRはReccurent(再帰)という意味で、直前の計算に左右されずに、連続的な要素ごとに同じ作業を行わせることができます。

image

LSTM(Long short-term memory) 最も使われているRNNの一つであるLSTM。 「今までの単語列を入力として、もっともらしい次の単語を予測する」ことをLSTMが担います。 image

rainit2006 commented 5 years ago

为什么要使用CNN? https://zhuanlan.zhihu.com/p/34818964

■总结:

■为什么使用CNN 使用卷积层是因为卷积层本质上是在自动提取图片的特征,而且在提取特征的同时,极大的降低了网络总体待训参数的总量。这两个特性使得CNN克服了特征提取困难,待训参数庞大的问题,成功制霸图片分类问题。

■为什么使用池化层(pooling) 我能想到的唯一的原因是要压缩矩阵,这样可以在模型中多加几层卷积层,用来提取更高维,更复杂的特征。而从压缩的角度上来看,这一步可谓简单有效,一个取最大值的操作,就让矩阵大小变为四分之一。

rainit2006 commented 5 years ago

RNN https://blog.csdn.net/qq_28031525/article/details/79423450

image

Gradient Vanishing   RNN中容易出现Gradient Vanishing是因为在梯度在向后传递的时候,由于相同的矩阵相乘次数太多,梯度倾向于逐渐消失,导致后面的结点无法更新参数,整个学习过程无法正常进行。