Machine Learning 学习笔记 03 最小二乘法、极大似然法、交叉熵 | 您所在的位置:网站首页 › 概率判别模型公式 › Machine Learning 学习笔记 03 最小二乘法、极大似然法、交叉熵 |
损失函数
神经网络里的标准和人脑标准相比较 相差多少的 定量表达。 最小二乘法首先要搞明白两个概率模型是怎么比较的。有三种思路, 最小二乘法、极大似然估计,交叉熵 ![]() 当一张图片人脑判断的结果是 (x1),神经网络判断的结果是 (y1),直接把它们相减 (\left|x_{1}-y_{1}\right|) 就是他们相差的范围。我们将多张图片都拿过来判断加起来,当最终值最小的时候,(\min \sum_{i=1}^{n}\left|x_{i}-y_{i}\right|) 就可以认定两个模型近似。 但是绝对值在定义域内不是全程可导的,所以可以求平方 (\min \sum_{i=1}^{n}\left(x_{i}-y_{i}\right)^{2}) 就这是 最小二乘法,但是只用它判断两个概率模型差别有多少,去作为损失函数会比较困难。所以引入 极大似然估计 极大似然估计![]() 似然值是真实的情况已经发生,我们假设它有很多模型,在这个概率模型下,发生这种情况的可能性就叫似然值。 挑出似然值最大的,那可能性也就越高,此时的概率模型应该是与标准模型最接近的。 [\begin{array}{l} P\left(C_{1}, C_{2}, C_{3}, \ldots, C_{10} \mid \theta\right) \ P\left(x_{1}, x_{2}, x_{3}, x_{4}, \ldots, x_{n} \mid W, b\right) \end{array} ] (\theta) 是抛硬币的概率模型,(W,b) 是神经网络的概率模型。前者结果是硬币是正还是反,后者结果是图片到底是不是猫。 [\begin{array}{l} P\left(x_{1}, x_{2}, x_{3}, x_{4}, \ldots, x_{n} \mid W, b\right) \ =\prod_{i=1}^{n} P\left(x_{i} \mid W, b\right) \end{array} ] 在神经网络是这样的参数下,输入的照片如果是猫概率是多少、如果不是猫概率是多少,所有图片判断后,相乘得到的值就是似然值。取到极大似然值就是最接近的值。 但在训练的时候 (W、b) 无论输入什么样的照片都是固定的值,如果我们都用猫的照片来确定的话标签都是(1),那就没有办法进行训练,理论可行却没有操作性。但是我们还可以利用条件,训练神经网络的时候既可以得到 (x_{i}) 也可以得到 (y_{i}), (y_{i}) 的输出结果依赖 (W,b) 。每次输入照片不一样,(y_{i}) 的结果也就不一样。 [\begin{array}{l} =\prod_{i=1}^{n} P\left(x_{i} \mid W, b\right) \ =\prod_{i=1}^{n} P\left(x_{i} \mid y_{i}\right) \end{array} ] (x_{i}) 的取值是 (0、1) ,符合二项伯努利分布,概率分布表达式为 [f(x)=p^{x}(1-p)^{1-x}=\left{\begin{array}{ll} p, & x=1 \ 1-p, & x=0 \end{array}\right. ] (x=1) 就是图片为猫的概率。而 (p) 就是 (y_{i}) (神经网络认定是猫的概率),将其带入替换 $ P\left(x_{i} \mid y_{i}\right)$ [=\prod_{i=1}^{n} y_{i}^{x_{i}}\left(1-y_{i}\right)^{1-x_{i}} ] 我们更喜欢连加,在前面加 (log) ,并化简 [\begin{array}{l} \log \left(\prod_{i=1}^{n} y_{i}^{x_{i}}\left(1-y_{i}\right)^{1-x_{i}}\right) \ =\sum_{i=1}^{n} \log \left(y_{i}^{x_{i}}\left(1-y_{i}\right)^{1-x_{i}}\right) \ =\sum_{i=1}^{n}\left(x_{i} \cdot \log y_{i}+\left(1-x_{i}\right) \cdot \log \left(1-y_{i}\right)\right) \end{array} ] 所以,求极大似然值,就是求如下公式 [\begin{array}{l} \max \left(\sum_{i=1}^{n}\left(x_{i} \cdot \log y_{i}+\left(1-x_{i}\right) \cdot \log \left(1-y_{i}\right)\right)\right) \ \min -\left(\sum_{i=1}^{n}\left(x_{i} \cdot \log y_{i}+\left(1-x_{i}\right) \cdot \log \left(1-y_{i}\right)\right)\right) \end{array} ] ![]() 要想直接比较两个模型,前提是两个模型类型是同一种,否则就不能公度。概率模型如果想要被统一衡量,我们需要引入熵(一个系统里的混乱程度)。 信息量我们想获取信息量的函数,就要进行定义。并找寻能让体系自洽的公式。 [{f}({x}):=\text { 信息量 }\ {f}( 阿根廷夺冠 )={f}( 阿根廷进决赛 )+{f}( 阿根廷赢了决赛 ) \ f\left(\frac{1}{8}\right)=f\left(\frac{1}{4}\right)+f\left(\frac{1}{2}\right)\ P(\text { 阿根廷夺冠 })=P(\text { 阿根廷进决赛 }) \cdot {P} \text { (阿根廷赢了决赛 })\ ] ![]() 将上面的第四条公式带入第三条得到如下第二条。为了使信息量定义能让体系自洽,我们给定定义 (log),这样符合相乘变相加的形式。 [\begin{array}{c} f(x):=? \log {?} x \ f\left(x{1} \cdot x_{2}\right)=f\left(x_{1}\right)+f\left(x_{2}\right) \end{array} ] 为了符合我们最直观的感觉,因为概率越小,信息量越大。而 (log) 函数单调递增,我们转换方向。 [\begin{array}{c} f(x):=-\log {2} x \ f\left(x{1} \cdot x_{2}\right)=f\left(x_{1}\right)+f\left(x_{2}\right) \end{array} ] 看计算机里多少位数据,给计算机输入一个16位数据,输入之前随便取的值是 (1/2^{16}) 的概率 ,输入之后的概率直接变为了 (1) 。信息量就是 (16) 比特。 信息量可以理解为一个事件从原来不确定到确定它的难度有多大,信息量大,难度高。 熵不是衡量某个具体事件,而是整个系统的事件,一个系统的从不确定到确定难度有多大 它们都是衡量难度,单位也可以一样都是比特。 ![]() 将上方对系统贡献的信息量可以看成是期望的计算。 ![]() ![]() ![]() ![]() ![]() KL散度绝对是大于等于(0) 的,当(Q、P) 相等的时候等于(0) ,不相等的时候一定大于(0) 为了让(Q、P) 两个模型接近,所以必须使交叉熵最小 交叉熵中 (m) 是两个概率模型里事件更多的那个,换成 (n) 是图片数量。 对(m)选择的解释:假如(p)的事件数量是(m),(q)的事件数量是(n),(m>n),那么写成(∑)求和,用较大的(m)做上标。就可以分解为,(∑1到n+∑n+1到m),那么对于(q)来说,因为(q)的数量只有(n),那么对应的(q)的部分(∑n+1到m)都等于(0)。 [\begin{array}{l} \boldsymbol{H}(\boldsymbol{P}, \boldsymbol{Q}) \ =\sum_{i=1}^{m} p_{i} \cdot\left(-\log {2} q{i}\right) \ =\sum_{i=1}^{n} x_{i} \cdot\left(-\log {2} q{i}\right) \ =-\sum_{i=1}^{n}\left(x_{i} \cdot \log {2} y{i}+\left(1-x_{i}\right) \cdot \log {2}\left(1-y{i}\right)\right) \end{array} ] (P) 是基准,要被比较的概率模型,我们要比较的人脑模型,要么完全是猫要么不是猫。 (x_{i}) 有两种情况,而 (y_{i}) 只判断图片有多像猫,并没有去判断相反的这个猫有多不像猫,而公式里的 (x_{i}) 与 (q_{i}) 要对应起来,当 (x_{i}) 为 (1) ,要判断多像猫,当 (x_{i}) 为 (0) 的时候,要判断不像猫的概率。 最后我们推导出来,公式跟极大似然推导出来的是一样的。但是从物理角度去看两者是有很大不同的,只是形式上的一样。 极大似然法里的(log) 使我们按习惯引入的,把连乘换成相加。而交叉熵的(log) 是写在信息量定义里的,以(2) 为底,计算出来的单位是比特,是有量纲的。 极大似然法求的是最大值,我们按习惯求最小值。而交叉熵负号是写在定义里的。Original: https://www.cnblogs.com/linxiaoxu/p/16111397.htmlAuthor: 小能日记Title: Machine Learning 学习笔记 03 最小二乘法、极大似然法、交叉熵 相关阅读 Title: 8-Django静态文件访问 1、 什么是静态文件图片、css、js、音频、视频等都属于静态文件 2、静态文件配置(1)在setting.py 中配置静态文件的访问路径 ''' STATIC_URL用于配置指定通过那个URL地址访问静态文件''' STATIC_URL = '/statics/' ''' STATICFILES_DIRS 用于配置静态文件的存储路径,即静态文件在服务器端的存储位置''' STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)(2)模板中静态文件访问方案1 –直接拼接访问路径 ![]() ![]() 方案2 –img标签为例通过 {%static%} 标签访问静态文件步骤:① 加载static —》{%load static%}② 使用静态资源 —》 {%static ‘静态资源路径’ %}样例: {% load static %}![]() setting.py STATIC_URL = '/static/' STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) LANGUAGE_CODE = 'zh-Hans' TIME_ZONE = 'Asia/Shanghai'urls.py path('test_static', views.test_static),views.py from django.shortcuts import render def test_static(request): return render(request, 'test_static.html')templates/test_static.html DOCTYPE html> 测试静态文件title> head>![]() ![]() ![]() 目录结构如下,在项目下建static/image文件夹,存放了2张图片 ![]() ![]() 例如,在setting.py 中修改 为’/statics/’, STATIC_URL = '/statics/'再次访问,查看源代码码,只有方案二动态变为statics,其他的还是static,所以只可以访问到第三张图片 ![]() ![]() Original: https://blog.csdn.net/LOVEYSUXIN/article/details/122324842Author: loveysuxinTitle: 8-Django静态文件访问 原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/369835/ 转载文章受原作者版权保护。转载请注明原作者出处! |
CopyRight 2018-2019 实验室设备网 版权所有 |