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,该如何计算梯度呢?

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

  • 相关阅读:
    ORA-01078:failure in processing system parameters
    pl sql developer登陆界面找不到oracle数据库选项
    PL/SQL Developer 与tnsnames.ora
    查看oracle连接数
    windows路由命令route
    在桌面显示我电脑
    linux 挂载ISO
    scp命令
    ss sp行情
    港股交易最大手数是如何规定的?
  • 原文地址:https://www.cnblogs.com/beaglebone/p/6004010.html
Copyright © 2011-2022 走看看