• 深度学习基础课:“判断性别”Demo需求分析和初步设计(中)


    大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序

    线上课程资料:
    本节课录像回放
    加QQ群,获得ppt等资料,与群主交流讨论:106047770

    本系列文章为线上课程的复盘,每上完一节课就会同步发布对应的文章

    本文为第二节课:“判断性别”Demo需求分析和初步设计(中)的复盘文章

    本课程系列文章可进入索引查看:
    深度学习基础课系列文章索引

    回顾相关课程内容

    • 第二节课:“判断性别”Demo需求分析和初步设计(上)
      • 主问题:什么是神经元?
      • 已知一个人的身高为150厘米,体重为50公斤,如何使用神经元得到该人的性别(应该为女性)?
      • 什么是训练?
      • 什么是推理?

    主问题:什么是神经网络

    • 已知两个人的身高和体重,能否使用神经元得到他们的性别(一男一女)?
      答:能,因为权重、偏移为未知量,总数量为3,小于方程的数量(2),所有有无数解,所以可确定一组解(权重、偏移)

    • 如何修改代码?
      答:修改train函数:给出一组权重、偏移,使得结果为分别为0、1;
      激活函数不变

    • 已知四个人的身高和体重,能否使用神经元得到他们的性别?
      答:不能

    • 为什么?
      答:因为权重、偏移为未知量,总数量为3,小于方程的数量(4),所以无解

    • 如何扩展,才能有解?
      答:使用神经网络,增加权重、偏移的数量!

    • 请设计一个最简单的神经网络?(有几层?每层有几个神经元?)
      答:image

    • 如何根据输入层的输入,最终得到输出层的输出?
      答:计算公式如下所示:
      image

    • 现在有几个未知解?能够有解了吗?
      答:有解

    主问题:什么是前向传播

    • “根据输入层的输入,最终得到输出层的输出?”的过程称为前向传播
    • 前向传播算法包括哪些步骤?
      答:从输入层开始,依次传入每层,得到每层的输出;
      最后传到输出层,得到最后的输出

    任务:用代码实现神经网络

    • 请修改神经元代码,提出神经元的前向传播forward函数?
      答:修改后的相关代码为:
      Neural_forward_answer
    let forward = (state: state, sampleData: sampleData): float => {
      (sampleData.height *. state.weight1 +.
      sampleData.weight *. state.weight2 +.
      state.bias)->_activateFunc
    }
    
    let inference = (state: state, sampleData: sampleData): gender => {
      forward(state, sampleData)->_convert
    }
    
    • 请在神经元代码的基础上,实现神经网络的前向传播和推理(训练函数不用实现)?
      • 推理函数需要修改吗?
        答:不需要
        神经网络代码如下所示:
        NeuralNetwork_answer
  • 相关阅读:
    浅涉OPC Client
    枚举目标机器已注册的OPC服务器
    C++ DCOM服务器和C#客户端互操作完全解释
    COMException:没有注册类别(REGDB_E_CLASSNOTREG)
    网络化广播主机ZABKZ/AXT8182
    OPC 技术文档之 IOPCBrowseServerAddressSpace 的使用
    SQL Server 2008 r2 服务无法启动
    Infinova V2040 系列 大型矩阵切换/控制系统
    COM中GUID和UUID、CLSID、IID
    django 视图与网址
  • 原文地址:https://www.cnblogs.com/chaogex/p/16618506.html
Copyright © 2020-2023  润新知