周志华《机器学习》Ch5. 神经网络:单隐层神经网络的python实现

理论

        单隐层神经网络由于隐层的非线性激活函数(Sigmoid/tanh/ReLu),理论上可以近似任意非线性函数。单隐层神经网络输入层维度为d(等于输入向量的维度),隐层维度为q(人为指定,q的指定有一定经验性和技巧性),输出层维度为k(k为类别个数,输出k维向量用于近似k类的one-hot编码,特例是k==2时输出层维度为1)。神经网络的参数是各层神经元之间的连接权值和非输入层神经元的阈值,单隐层神经网络的参数量为 (d + k + 1) q + k.

        神经网络的训练(参数更新)采用误差逆传播(BP)算法,BP算法其实是梯度下降算法在神经网络上的变形。梯度下降算法是一种经典的数值优化算法,简而言之就是每次参数更新的方向是目标函数误差的负梯度方向。BP算法解决的问题就是层与层之间梯度传播问题,其数学实质是链式求导法则。

代码

# -*- coding: utf-8 -*-
"""
Created on Fri Aug 24 09:06:34 2018

From 'Machine Learning, Zhihua Zhou' Ch5
Model: Single-Hidden-Layer Neural Network
        BackPropagation
Dataset: P89 watermelon_3.0a (watermelon_3.0a.npy)

@author: weiyx15
"""

import numpy as np
import matplotlib.pyplot as plt

class Single_Hidden_Layer
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值