损失函数
何为损失函数常见的损失函数均方差(MSE)损失(Mean Squared Error Loss)均方差(MSE)损失是机器学习、深度学习回归任务中最常用的一种损失函数,也称为L2 Loss,它是模型预测值 $\hat y$ 与真实样本值 $y$ 之间差值的平方和。$$L_2(x)=(y-\hat y)^2$$
$$J_{MSE}=\frac{1}{N}\sum_{i=1}^{N}(y_i-\hat y_i)^2$$令 n=1,以$y-\hat y$为横轴,MSE值为纵轴,得函数图形如下:
可见MSE函数曲线光滑连续且处处可导,便于使用梯度下降算法,并且随着误差的减小,梯度也在减小,有利于收敛。
由平方项可知,当 $y-\hat y < 1$,MSE给予较小的惩罚,缩小误差;当 $y-\hat y > 1$,MSE给予较大的惩罚,放大误差;可知MSE对离群点比较敏感,受其影响较大。
如果样本中存在离群点,MSE会给离群点更高的权重放大误差,这就会牺牲其他正常点数据的预测效果,最终降低整体的模型性能。如图:
平均绝对误差(MAE)损失(M ...
激活函数
何为激活函数激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。
激活函数可以分为线性激活函数(线性方程控制输入到输出的映射,如f(x)=x等)以及非线性激活函数(非线性方程控制输入到输出的映射,比如Sigmoid、Tanh、ReLU、LReLU、PReLU、Swish 等)
因为神经网络中每一层的输入输出都是一个线性求和的过程,下一层的输出只是承接了上一层输入函数的线性变换,所以如果没有激活函数,那么无论你构造的神经网络多么复杂,有多少层,最后的输出都是输入的线性组合,纯粹的线性组合并不能够解决更为复杂的问题。而引入激活函数之后,我们会发现常见的激活函数都是非线性的,因此也会给神经元引入非线性元素,使得神经网络可以逼近其他的任何非线性函数,这样可以使得神经网络应用到更多非线性模型中。
为了增强网络的表示能力和学习能力,神经网络的激活函数都是非线性的,通常具有以下几点性质:
连续并可导(允许少数点上不可导),可导 ...
TensorFlow 笔记2
数据读取处理1. 文件读取以下用到的队列都为tf.train.QueueRunner对象,每个 QueueRunner 都负责一个阶段,tf.train.start_queue_runners()函数会要求图中的每个 QueueRunner 启动它的运行队列操作的线程。因此需要在会话中进行线程操作(结束后需回收线程)。
tf.train.Coordinator()线程协调器,通过它来对线程进行管理和协调;创建一个线程协调器对象coord = tf.train.Coordinator(),coord.request_stop():请求停止,coord.join(threads= ):回收线程。
tf.train.start_queue_runners(sess=,coord=)收集图中所有的队列线程,默认同时启动线程。sess:所在的会话,coord:线程协调器。
1.1 构造文件名队列将需要读取的文件的文件名(一般为相对路径)放入文件队列。
tf.train.string_input_producer(string_tensor,num_epochs=None,shuffle=True ...
TensorFlow 笔记1
Tensorflow的基本结构
tensor(张量):tensorflow的数据中央控制单元 每一个tensor都有一系列的初始值组成,这些初始值形成一个任意维数的数组(一般tensor的列即为它的维度)。flow(流动)。
Tensorflow程序通常有两个阶段:构建图阶段和执行图阶段。
构建图阶段:定义数据(张量[^tensor])与操作(节点[^Op]),这些执行步骤被描述成一个图。
执行图阶段:使用会话(Session)执行构建好的图中的操作。
123456789101112131415161718import tensorflow as tfnode1 = tf.constant(3.0)node2 = tf.constant(4.0)node3 = tf.add(node1,node2)print(node1) # Tensor("Const:0", shape=(), dtype=float32)print(node2) # Tensor("Const_1:0", shape=(), dtype=float32)print(nod ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment