梯度下降法
梯度下降法是一种致力于找到函数极值点的算法。梯度的输出是由若干偏导数构成的向量,它的每个分量对应于函数对输入向量的相应分量的偏导。
梯度的输出向量表明了在每个位置损失函数增长最快的方向,可将它视为表示了在函数的每个位置向哪个方向移动函数值可以增长。
多层感知器
上节课提到的线性回归模型是单个神经元:计算输入特征的加权和,然后使用一个激活函数(或传递函数计算输出:
二分类:
多分类:
那么,多层感知器可以说是生物的神经元一层一层连接起来,当神经信号达到某一个条件,这个神经元就会激活,然后继续传递信息下去。为了继续使用神经网络解决这种不具备线性可分性的问题,采取在神经网络的输出端和输入端之间插入更多的神经元。
说明:在x1,x2两个特征之间添加权重连接到隐含层,然后通过隐含层在连接到输出层,再输出。这样的网络结构就是多层感知器(图像只添加一个层,现实生活中我们可以添加很多层)
激活函数
激活函数是在模拟了人的神经元而得到的启发。它会对接收的信号有一个考察,若信号满足一定的条件就会输出函数。这样的激活会对网络带来非线性,使得这样的网络可以拟合非线性的问题。
相关函数有:
relu()函数激活
sigmoid()函数激活
tanh()函数激活
代码实现
import tensorflow as tf#读取数据库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
读取数据并查看数据:
data = pd.read_csv('C:/Users/HP/Desktop/tf/Advertising.csv')#读取数据集
data#不同方式广告的投放量
Unnamed: 0 | TV | radio | newspaper | sales | |
---|---|---|---|---|---|
0 | 1 | 230.1 | 37.8 | 69.2 | 22.1 |
1 | 2 | 44.5 | 39.3 | 45.1 | 10.4 |
2 | 3 | 17.2 | 45.9 | 69.3 | 9.3 |
3 | 4 | 151.5 | 41.3 | 58.5 | 18.5 |
4 | 5 | 180.8 | 10.8 | 58.4 | 12.9 |
5 | 6 | 8.7 | 48.9 | 75.0 | 7.2 |
6 | 7 | 57.5 | 32.8 | 23.5 | 11.8 |
7 | 8 | 120.2 | 19.6 | 11.6 | 13.2 |
… | … | … | … | … | … |
195 | 196 | 38.2 | 3.7 | 13.8 | 7.6 |
196 | 197 | 94.2 | 4.9 | 8.1 | 9.7 |
197 | 198 | 177.0 | 9.3 | 6.4 | 12.8 |
198 | 199 | 283.6 | 42.0 | 66.2 | 25.5 |
199 | 200 | 232.1 | 8.6 | 8.7 | 13.4 |
200 rows × 5 columns
plt.scatter(data.TV,data.sales)#TV与销售量的关系
plt.scatter(data.radio,data.sales)#radio与销售量的关系