-
打个分吧:

ML01 | 机器学习&神经网络简介

Javascript玩转机器学习01

2分钟阅读
-
-

大纲

  • 理论知识:机器学习、神经网络、 Tensorflow. js
  • 经典案例:线性回归、逻辑回归、XOR、IRS、手写数字识 别、商标识别、语音识别
  • 神经网络模型:从单个神经元到深度神经网络
  • 神经网络模型算法:MSE/Log/ Cross Entropy Sigmoid/Relu/Softmax, SGD/Adam
  • 炼丹最佳实践:归化、欠(过)拟合、可视化、度量
  • 模型的迁移学习、保存、加载、转换

为什么要学机器学习

可以做一些很酷的事情,tensorflow.js官网列出了一些已经训练好的,开箱即用的模型

例如,BodyPix:实时分割人的身体和身体部位

body-pix

图像分类, 文本恶意检测, 语音指令识别, ...

机器学习是什么

数据 + 经验 -> 优化算法
  • 对能通过经验自动改进算法的研究
  • 数据或者以往的经验,来优化计算机程序的性能标准

机器学习例子:线性回归

  • 只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。

线性回归

  • 如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。

多元线性回归

机器学习例子:逻辑回归

  • 输入连续的(多个)值,输出0-1之间的概率,可以用于解决分类/是非判断问题

逻辑回归

  • 例子:图片分类、语音助手

逻辑回归:图片分类

为什么要用机器学习

  • 有些问题无法用编写代码规则的方法来解决,例如图片识别。
  • 获取数据比编写规则更容易
  • GPU等计算能力显著提升(上世纪神经网络就已发明,但是受限于计算机计算能力,得不到发展

机器学习如何运作

  • 神经网络
  • 决策树、支持向量机、贝叶斯分类器、强化学习

什么是神经网络

  • 人工神经网络
  • 一种运算模型(输入输出的映射)
  • 由大量的节点(神经元)之间相互连接构成
  • 神经网路包括:一个输入层,若干隐藏层,一个输出层。
  • 每条线的权重可能不同

神经元、权重、偏置、激活函数

  • 每个神经元里都存储着若干权重wight偏置bias和一个激活函数activation
  • 输入权重 + 偏置,经过激活函数得到输出
  • 激活函数:用于添加非线性变换

神经网络的训练是什么?

  • 给大量输入输出,算出神经网络里所有神经元的权重、偏置,然后给定新的输入,可以算出新的输出

机器学习中的术语

  • ==特征==:输入
  • ==标签==:输出
  • 训练集:大量输入输出

如何训练

  1. 初始化:随便生成一些weightbias
  2. 计算损失:给定特征,计算出标签,得到其与真实标签的差距
  3. 优化:微调weightbias,使损失变小

前向传播

  • 将训练数据的特征(输入)送入网络,得到标签(输出)

反向传播

  • 计算损失并优化

如何计算损失

损失函数:均方误差、对数损失、交叉熵...

(了解损失函数原理即可,可以从第三方库调用。eg.TensorFlow.js)

如何优化

优化器:随即梯度下降SGDAdam

(了解损失函数原理即可,可以从第三方库调用。eg.TensorFlow.js)


代码仓库

上次更新:

评论区