zoukankan      html  css  js  c++  java
  • 手写识别

    任务:给定一个手写数字的image,预测出该数字是几?

    特征提取:提取该image的像素点灰度值作为输入。例如一个书写数字的图片为64*64像素点,那么输入x向量的维数为4096.

    建立模型:采用前向神经网络模型,每个神经元是sigmoid模型,多层神经元构成神经网络。输入是4096个像素点的灰度值,x1,...x4096 ,xi是介于0~1之间的数值。输出是一个十维的向量,y=(y1,...y10),每个yi也是介于0~1之间,是一个概率值。

    训练模型:用已知的手写数字图片与真实值 训练模型,将已知的手写数字图片的像素点灰度值作为输入,输入到模型中,得到预测的输出y,将所有输入的预测输出值与真实值的误差用来更新模型参数。我们用  

                              

    来表示预测误差,通过使得这个误差逐渐减小达到不断的更新模型参数的目的。这个函数我们称为目标函数。

    优化:我们的目标是,求使得目标函数最小时的模型参数。求这个目标函数的最小值,可以通过求解析解的方法得到,若没有解析解,则需要通过一些优化方法才能得到。这里我们的模型参数很多,无法直接求得解析解,因此采用梯度下降法来不断优化目标函数。
    梯度下降法:函数中任意一点的梯度方向是函数变化最快的方向。正梯度方向是函数增大最快的方向,负梯度方向是函数下降最快的方向。

    对于有着很多变量的目标函数C,该如何计算梯度呢?

    反向传播算法:具体的步骤见图

  • 相关阅读:
    STL源代码剖析(二)
    局域网部署docker--从无到有创建自己的docker私有仓库
    Leetcode Add two numbers
    GDIPlus绘制桌面歌词
    Android中apk动态载入技术研究(2)android插件化及实现
    jq 地区(省市县区)联动菜单
    System.Diagnostics.Process.Start的妙用
    aaaa
    RESTful Web 服务:教程
    芒果TV 视频真实的地址获取
  • 原文地址:https://www.cnblogs.com/beaglebone/p/6004010.html
Copyright © 2011-2022 走看看