神经网络
非线性假设
神经元与大脑
神经网络
起源:试图模仿大脑的算法。在80年代和90年代初被广泛使用; 90年代末,受欢迎程度有所下降。
最近的复兴:许多应用的最先进技术
模型展示
输入层 隐藏层 输出层
(逻辑运算)
多元分类
手写数字识别
#神经网络
import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import scipy.optimize as opt
from scipy.io import loadmat
from sklearn.metrics import classification_report
#训练集
#训练集5000个数据,每个数据表示一个20*20的灰度图像也就是400维
def load_data(path, transpose=True):
data = loadmat(path)
X = data['X']
y = data['y']
y = y.reshape(y.shape[0])
print(type(X))
if transpose:
X = np.array([im.reshape((20,20)).T.reshape(400) for im in X])
return X, y
raw_x, raw_y = load_data(r'C:\\Users\\ex3data1.mat')
#<class 'numpy.ndarray'>
print(raw_x.shape, raw_y.shape)#(5000, 400) (5000,)
def plot_an_image(image):
fig,ax=plt.subplots(figsize=(1,1))
ax.matshow(image