当前位置: 首页 > news >正文

网站改版的宣传词枣强做百度网站

网站改版的宣传词,枣强做百度网站,v9网站模板,网络运营商怎么看目录 1.2.神经网络基础 1.2.1.Logistic回归 1.2.2 梯度下降算法 1.2.3 导数 1.2.4 向量化编程 1.2.5 正向传播与反向传播 1.2.6.练习 1.2.神经网络基础 1.2.1.Logistic回归 1.2.1.1.Logistic回归 逻辑回归是一个主要用于二分分类类的算法。那么逻辑回归是给定一个x ,…目录 1.2.神经网络基础 1.2.1.Logistic回归 1.2.2 梯度下降算法 1.2.3 导数 1.2.4 向量化编程 1.2.5 正向传播与反向传播 1.2.6.练习 1.2.神经网络基础 1.2.1.Logistic回归 1.2.1.1.Logistic回归 逻辑回归是一个主要用于二分分类类的算法。那么逻辑回归是给定一个x , 输出一个该样本属于1对应类别的预测概率y​^​​P(y1∣x)。 Logistic 回归中使用的参数如下   输入的特征向量x∈R​n​x​​​​,x是一个n​x​​维的特征数量用于训练的标签y∈0,1参数权重w∈R​n​x​​​​, 偏置b∈R输出预测结果 Sigmoid 函数如果z的结果非常大那么S的结果接近于1如果 z的结果较小或者是非常大的负数那么S的结果接近于0 ​​的函数如下 例如 1.2.2.1.逻辑回归损失函数 损失函数loss function用于衡量预测结果与真实值之间的误差。最简单的损失函数定义方式为平方差损失  逻辑回归一般使用 该式子的理解 如果y1,损失为−log​y​^​​那么要想损失越小​y​^​​的值必须越大即越趋近于或者等于1如果y0,损失为-log(1−​y​^​​),那么要想损失越小那么​y​^​​的值越小即趋近于或者等于0 损失函数是在单个训练样本中定义的它衡量了在单个训练样本上的表现。代价函数cost function衡量的是在全体训练样本上的表现即衡量参数 w 和 b 的效果所有训练样本的损失平均值 1.2.2.梯度下降算法 目的使损失函数的值找到最小值 方式梯度下降 函数的梯度gradient指出了函数的最陡增长方向。梯度的方向走函数增长得就越快。那么按梯度的负方向走函数值自然就降低得最快了。模型的训练目标即是寻找合适的 w 与 b 以最小化代价函数值。假设 w 与 b 都是一维实数那么可以得到如下的 J 关于 w 与 b 的图 可以看到成本函数 J 是一个凸函数与非凸函数的区别在于其不含有多个局部最低。 参数w和b的更新公式为 注其中 α 表示学习速率即每次更新的 w 的步伐长度。当 w 大于最优解 w′ 时导数大于 0那么 w 就会向更小的方向更新。反之当 w 小于最优解 w′ 时导数小于 0那么 w 就会向更大的方向更新。迭代直到收敛。 通过平面来理解梯度下降过程 1.2.3.导数 理解梯度下降的过程之后我们通过例子来说明梯度下降在计算导数意义或者说这个导数的意义。 1.2.3.1.导数 导数也可以理解成某一点处的斜率。斜率这个词更直观一些。 各点处的导数值一样 我们看到这里有一条直线这条直线的斜率为4。我们来计算一个例子 例取一点为a2,那么y的值为8我们稍微增加a的值为a2.001,那么y的值为8.004也就是当a增加了0.001随后y增加了0.004即4倍 那么我们的这个斜率可以理解为当一个点偏移一个不可估量的小的值所增加的为4倍。 可以记做 各点的导数值不全一致 例取一点为a2,那么y的值为4我们稍微增加a的值为a2.001,那么y的值约等于4.0044.004001也就是当a增加了0.001随后y增加了4倍 取一点为a5,那么y的值为25我们稍微增加a的值为a5.001,那么y的值约等于25.0125.010001也就是当a增加了0.001随后y增加了10倍 1.2.3.2 导数计算图 那么接下来我们来看看含有多个变量的到导数流程图假设J(a,b,c)3(abc) 我们以下面的流程图代替 这样就相当于从左到右计算出结果然后从后往前计算出导数 导数计算 问题那么现在我们要计算J相对于三个变量a,b,c的导数 假设b4,c2,a7,u8,v15,j45 增加v从15到15.001那么J≈45.003 增加a从7到7.001,那么v≈15.001J≈45.003 这里也涉及到链式法则 1.2.3.3 链式法则 1.2.3.4 逻辑回归的梯度下降 逻辑回归的梯度下降过程计算图首先从前往后的计算图得出如下 那么计算图从前向过程为,假设样本有两个特征 问题计算出J 关于z的导数 所以我们这样可以求出总损失相对于w​1​​,w​2​​,b参数的某一点导数从而可以更新参数 相信上面的导数计算应该都能理解了所以当我们计算损失函数的某个点相对于1,2,w​1​​,w​2​​,b的导数之后就可以更新这次优化后的结果。 1.2.4.向量化编程 每更新一次梯度时候在训练期间我们会拥有m个样本那么这样每个样本提供进去都可以做一个梯度下降计算。所以我们要去做在所有样本上的计算结果、梯度等操作 计算参数的梯度为这样我们想要得到最终的dw​1​​,dw​2​​,db如何去设计一个算法计算伪代码实现 1.2.4.1 向量化优势 什么是向量化 由于在进行计算的时候最好不要使用for循环去进行计算因为有Numpy可以进行更加快速的向量化计算。 import numpy as np import time a np.random.rand(100000) b np.random.rand(100000)第一种方法 # 第一种for 循环 c 0 start time.time() for i in range(100000):c a[i]*b[i] end time.time()print(计算所用时间%s % str(1000*(end-start)) ms)第二种向量化方式使用np.dot # 向量化运算 start time.time() c np.dot(a, b) end time.time() print(计算所用时间%s % str(1000*(end-start)) ms)Numpy能够充分的利用并行化Numpy当中提供了很多函数使用 函数作用np.ones or np.zeros全为1或者0的矩阵np.exp指数计算np.log对数计算np.abs绝对值计算 所以上述的m个样本的梯度更新过程就是去除掉for循环。原本这样的计算 1.2.4.2 向量化实现伪代码 思路 可以变成这样的计算 注w的形状为(n,1), x的形状为(n, m)其中n为特征数量m为样本数量 我们可以让得出的结果为(1, m)大小的矩阵 注大写的W,X为多个样本表示 实现多个样本向量化计算的伪代码 这相当于一次使用了M个样本的所有特征值与目标值那我们知道如果想多次迭代使得这M个样本重复若干次计算 1.2.5.正向传播与反向传播 前面我们所做的整个过程分为两个部分一个是从前往后的计算出梯度与损失另外一部分是从后往前计算参数的更新梯度值。所以在神经网络当中会经常出现两个概念正向传播与反向传播。 正向传播是神经网络从输入到输出的过程主要用于计算输出结果。 反向传播是根据输出和目标值之间的差距调整网络参数的过程主要用于优化网络的权重和偏置。这两个过程交替进行直到网络的损失函数最小化达到训练目标。 1.2.6.练习 1.使用np.exp()实现sigmoid function和sigmoid gradient梯度 import numpy as np def basic_sigmoid(x):计算sigmoid函数s 1 / (1 np.exp(-x))return sdef sigmoid_derivative(x):计算sigmoid function函数相对于其输入x的梯度也称为斜率或者导数.sbasic_sigmoid(x)dss*(1-s)return ds 2.实现单神经元网络 import numpy as np import h5py import scipy from PIL import Image from scipy import ndimage from data import load_dataset #%% md ## 要求 实现一个学习算法的整体结构 * 获取并定义模型输入 * 初始化参数 * 计算成本函数及其梯度 * 使用优化算法梯度下降* 循环* 计算当前损失正向传播* 计算当前梯度反向传播* 更新参数梯度下降请实现相关函数其中读取数据不需要实现。并在主模型函数中编写逻辑。 #%% md ### 读取数据 1、按照向量化伪代码实现的形状要求将样本数据进行转换 2、标准化数据处理 #%% train_x, train_y, test_x, test_y, classes load_dataset() print (训练集的样本数: , train_x.shape[0]) print (测试集的样本数: , test_x.shape[0]) print (train_x形状: , train_x.shape) print (train_y形状: , train_y.shape) print (test_x形状: , test_x.shape) print (test_x形状: , test_y.shape) #%% train_y #%% train_x train_x.reshape(train_x.shape[0], -1).T test_x test_x.reshape(test_x.shape[0], -1).T print(train_x.shape, test_x.shape) #%% train_x train_x/255. test_x test_x/255. #%% def basic_sigmoid(x):计算sigmoid函数### 开始s 1 / (1 np.exp(-x))### 结束return s #%% md ### 算法结构实现 分别构建算法的不同模块 * 初始化参数 * 计算成本函数及其梯度 * 使用优化算法梯度下降* 循环* 计算当前损失正向传播* 计算当前梯度反向传播* 更新参数梯度下降img srcimages/题目逻辑.png stylewidth:600px;height:550px; #%% md ### 初始化网络参数 #%% def initialize_with_zeros(shape):创建一个形状为 (shape, 1) 的w参数和b0.return:w, b### 开始w np.zeros((shape, 1))b 0### 结束assert(w.shape (shape, 1))assert(isinstance(b, float) or isinstance(b, int))return w, b #%% md ### 前向和反向传播 根据损失函数、前后传播向量化代码 #%% def propagate(w, b, X, Y):参数w,b,X,Y网络参数和数据Return:损失cost、参数W的梯度dw、参数b的梯度dbm X.shape[1]# 前向传播### 开始# w (n,1), x (n, m)A basic_sigmoid(np.dot(w.T, X) b)# 计算损失cost -1 / m * np.sum(Y * np.log(A) (1 - Y) * np.log(1 - A))### 结束# 反向传播### 开始dz A - Ydw 1 / m * np.dot(X, dz.T)db 1 / m * np.sum(dz)### 结束assert(dw.shape w.shape)assert(db.dtype float)cost np.squeeze(cost)assert(cost.shape ())grads {dw: dw,db: db}return grads, cost #%% md ### 优化过程 实现优化函数. 全局的参数随着 $w$ $b$ 对损失 $J$进行优化改变. 对参数 $\theta$实行 $ \theta \theta - \alpha \text{ } d\theta$, 并制定 $\alpha$ 学习率。 #%% def optimize(w, b, X, Y, num_iterations, learning_rate):参数w:权重,b:偏置,X特征,Y目标值,num_iterations总迭代次数,learning_rate学习率Returns:params:更新后的参数字典grads:梯度costs:损失结果costs []for i in range(num_iterations):# 梯度更新计算函数### 开始grads, cost propagate(w, b, X, Y)# 取出两个部分参数的梯度dw grads[dw]db grads[db]# 按照梯度下降公式去计算w w - learning_rate * dwb b - learning_rate * db### 结束if i % 100 0:costs.append(cost)if i % 100 0:print(损失结果 %i: %f %(i, cost))print(b)params {w: w,b: b}grads {dw: dw,db: db}return params, grads, costs #%% md ### 预测函数不用实现 利用得出的参数来进行测试得出准确率 #%% def predict(w, b, X):利用训练好的参数预测return预测结果m X.shape[1]Y_prediction np.zeros((1,m))w w.reshape(X.shape[0], 1)# 计算结果### 开始A basic_sigmoid(np.dot(w.T, X) b)### 结束for i in range(A.shape[1]):### 开始if A[0, i] 0.5:Y_prediction[0, i] 0else:Y_prediction[0, i] 1### 结束assert(Y_prediction.shape (1, m))return Y_prediction #%% md ### 整体逻辑实现 #%% def model(X_train, Y_train, X_test, Y_test, num_iterations 2000, learning_rate 0.5):### 开始# 初始化参数w, b initialize_with_zeros(X_train.shape[0])# 梯度下降# params:更新后的网络参数# grads:最后一次梯度# costs:每次更新的损失列表params, grads, costs optimize(w, b, X_train, Y_train, num_iterations, learning_rate)# 获取训练的参数# 预测结果w params[w]b params[b]Y_prediction_train predict(w, b, X_train)Y_prediction_test predict(w, b, X_test)### 结束# 打印准确率print(训练集准确率: {} .format(100 - np.mean(np.abs(Y_prediction_train - Y_train)) * 100))print(测试集准确率: {} .format(100 - np.mean(np.abs(Y_prediction_test - Y_test)) * 100))d {costs: costs,Y_prediction_test: Y_prediction_test, Y_prediction_train : Y_prediction_train, w : w, b : b,learning_rate : learning_rate,num_iterations: num_iterations}return d #%% md ### 测试 #%% d model(train_x, train_y, test_x, test_y, num_iterations 2000, learning_rate 0.005)data.py import numpy as np import h5pydef load_dataset():train_dataset h5py.File(datasets/train_catvnoncat.h5, r)train_set_x_orig np.array(train_dataset[train_set_x][:]) # your train set featurestrain_set_y_orig np.array(train_dataset[train_set_y][:]) # your train set labelstest_dataset h5py.File(datasets/test_catvnoncat.h5, r)test_set_x_orig np.array(test_dataset[test_set_x][:]) # your test set featurestest_set_y_orig np.array(test_dataset[test_set_y][:]) # your test set labelsclasses np.array(test_dataset[list_classes][:]) # the list of classestrain_set_y_orig train_set_y_orig.reshape((1, train_set_y_orig.shape[0]))test_set_y_orig test_set_y_orig.reshape((1, test_set_y_orig.shape[0]))return train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes
http://www.hkea.cn/news/14557668/

相关文章:

  • 现在哪个行业做网站需求多点深圳企业网站设
  • 114百事通做网站600编程培训网站
  • dedecms网站后台管理怎样建设网站最好
  • 网站 蓝色为什么大型网站都用php
  • 网站平台之间的关系贝壳找房网站做销售
  • 微网站模板源代码建设部门电工证查询网站
  • 购买源码的网站网站建设价格明细表
  • 宝安龙华积分商城网站建设建站一条龙的服务流程是怎么样的
  • 建设网站用什么技术网站优化qq群
  • 台山住房和城乡建设 网站信息型网站
  • 做网站多少钱_西宁君博优选站长工具视频
  • 站点建设方案北京旧房改造装修哪家好
  • 上海全上海全国网站建设网站表格怎么做
  • wordpress网站制作教程视频兼职招聘网站
  • 做优惠卷网站倒闭了多少钱站长域名查询工具
  • 做招聘信息的网站专业网页制作什么好
  • WordPress的黑色框东莞网站优化的具体方案
  • 上海人才网招聘网最新招聘无锡网站建设优化
  • 广告联盟怎么建设网站成都网络营销推广公司哪家好
  • 鄂尔多斯网站开发自助建站系统模板
  • 网站建设哪家做的好一点推荐seo关键词优化
  • 玉山县建设局的网站品牌建设卓有成效
  • wordpress文字编辑器佛山市seo推广营销工具
  • 太原网站制作小程序网站开发程序员招聘
  • 昆山网站建设首页湘潭网站seo公司
  • 上海市建设安全协会官方网站北京城市副中心投资建设公司网站
  • 衡阳县做淘宝网站建设百度推广进入后是别的网站 说是服务器问题
  • 给分管领导网站建设情况汇报怎么写产品推广策划书
  • 网站建设易网怎么做一个网站app吗
  • 南县网站建设小程序咋做