梯度下降

【DL基础】盘天盘地盘“直男”,激活函数不简单

独自空忆成欢 提交于 2021-02-06 01:30:44
戳一戳!和我一起走进 深度学习 的世界 导读 我们常常在深度学习中听到激活函数的概念,作为深度学习中的经典“骚操作”,激活函数一直在发浪,却从未被超越。 今天要分享这篇文章带我们一起了解 什么是激活函数?为什么要有激活函数?激活函数都有哪些?它们的优缺点分别是什么? 让我们走进这篇文章,一起来了解一下吧! 如果你有什么问题,或者有什么想法,欢迎评论与我一起沟通交流。 如果你 想了解更多有关于机器学习、深度学习、计算机视觉、OpenCV、等相关技术的内容,想与更多大佬一起沟通,那就加群: 326866692 或者扫描下方二维码加入我们吧! 本文目录 导读 1 激活函数是什么 2 为啥要引入激活函数 A 引入非线性 B 修正线性结果 3 常见激活函数 A Sigmoid B tanh C arctan D ReLU E ReLU变异家族 F 其他激活函数 4 为啥要求激活函数可导 1 激活函数是什么 我们常常听到激活函数,特别是当我们深入研究深度学习的时候,在我们搭建神经网络的时候,我们经常会使用激活函数,当然也有一些小伙伴可能还不是特别熟悉激活函数,所以我们先来看一下激活函数是什么? 当我们对图像做完卷积操作,添加偏置量(不是必须)之后,我们能够得到一个计算结果,把这个计算结果作为输入,经过一个函数得到我们想要的输出。这个函数就是激活函数。 上面这句话说得有点土

吴恩达深度学习学习笔记——C3W1——机器学习策略1-1

非 Y 不嫁゛ 提交于 2021-02-05 14:38:08
1.1 为什么需要ML策略? 问题引入:如何提高机器学习的水平?可能有很多种想法(如,收集更多数据、收集更丰富多样的训练数据、增加梯度下降法迭代次数、增加网络规模、减小网络规模、使用随机失活(dropout)、添加L2正则化项、改变网络架构(激活函数、隐层单元数等)),应该选择哪些,舍弃哪些? 1.2 正交化 正交化的一个实例:老式电视机的调节按钮(上下、左右、形变等),每个按钮的功能明确而相对对立,即所谓“正交”(orthogonal) 机器学习中的假设链: 成本函数调优顺序:训练集 -> 开发集(验证集)-> 测试集 -> 真实世界 Orthogonalization(正交化) Orthogonalization or orthogonality is a system design property that assures that modifying an instruction or a component of an algorithm will not create or propagate side effects to other components of the system. It becomes easier to verify the algorithms independently from one another, it reduces

50经典面试题 | 附参考答案

亡梦爱人 提交于 2021-01-31 01:46:03
点击上方 “ AI算法与图像处理 ”,选择加"星标"或“置顶” 重磅干货,第一时间送达 来源:计算机视觉研究院专栏 作者:Edison_G 有兴趣的同学请学会面试答题!祝大家都可以拿到心仪的Offer! 1、请详细说说支持向量机(support vector machine,SVM)的原理 支持向量机,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。 2、哪些机器学习算法不需要做归一化处理? 在实际应用中,需要归一化的模型: 1.基于距离计算的模型:KNN。 2.通过梯度下降法求解的模型:线性回归、逻辑回归、支持向量机、神经网络。 但树形模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、随机森林(Random Forest)。 3、树形结构为什么不需要归一化? 因为数值缩放不影响分裂点位置,对树模型的结构不造成影响。 按照特征值进行排序的,排序的顺序不变,那么所属的分支以及分裂点就不会有不同。而且,树模型是不能进行梯度下降的,因为构建树模型(回归树)寻找最优点时是通过寻找最优分裂点完成的,因此树模型是阶跃的,阶跃点是不可导的,并且求导没意义,也就不需要归一化。 4、在k

通俗易懂理解——条件随机场CRF

青春壹個敷衍的年華 提交于 2021-01-30 08:30:35
https://mp.weixin.qq.com/s?__biz=MzIyNzE5NjExMA==&mid=2651342812&idx=1&sn=2f74c852200d6868f68a2f05ba561ac8&chksm=f3980a7dc4ef836b764c7ad2bab7c92e696074af43efa2a6be03d686fcec0a4a91a05a116b38&scene=178&cur_album_id=1381650339941761024&exportkey=AaZpj6rbOKQmUg2WIvFt0k0%3D&pass_ticket=lXzBpkoZ2YPJsUPAT3fbhToQqpCP%2BpcjC24v76SUrC6t0zqXhUNtg4RI8W8iC6It&wx_header=0#rd 前言 CRF是一个概率无向图模型,在NLP领域应用广泛,目前大部分的序列标注问题(分词、实体识别等)都会采用Neural Network+CRF作为baseline,本文将会对CRF做一个基本的介绍,并讲解其推导过程。 CRF解决的是什么问题 假设你有许多小明同学一天内不同时段的照片,从小明起床到睡觉各个时间段都有。现在的任务是对这些照片进行分类。比如有的照片是吃饭,那就给它打上吃饭的标签;有的照片是跑步时拍的,那就打上跑步的标签;有的照片是开会时拍的

从一道面试题谈谈一线大厂码农应该具备的基本能力

偶尔善良 提交于 2021-01-29 04:35:18
从一道面试题谈谈一线大厂码农应该具备的基本能力 码农唐磊 程序猿石头 作者:Yura Shevchenko 来源:skypixel.com 关于一线码农的面试,我想说 求职面试在绝大部分人来说都是必不可少的,自己作为求职者也参与了不少面试(无论成功或者失败),作为技术面试官参与面试也有四五年的经验,在面试过程中也见识到了各种各样的人(有厉害的,也有奇葩的)。在这里也只想谈谈自己的一些看法,我说的不一定对,有不同的意见可以留言参与讨论。 面试本来就是一个双向选择的过程,面试官和候选人的地位本应该是一个平等的位置,面试官希望通过简单的交流沟通可以对候选人的技术,沟通等有一定了解进而确定候选人是否匹配相应的职位。个人认为一场成功的面试最好是能够让求职者和面试官都有一定的收获(曾经也遇到过在某次面试后,HR 告诉我有候选人特意跟她反馈要表达对面试官的感谢,因为让他很有收获,这当然还是让我感到非常高兴的),每次参与面试,也希望自己能达到这个目标。对于候选人来说能从面试过程了解自己的不足或者交流探讨面试问题;对于面试官来说能了解候选人的技术和项目,在交流探讨中也是一次学习和巩固。 另外面试能否通过最终强调的是职位匹配,一个萝卜一个坑,萝卜太大或太小都不一定合适。所以有时候面试没通过并不是候选人不够优秀,也有可能是候选人过于优秀(例如本来只想招聘 P6,结果来了一个 P8的候选人肯定不合适)。

吴恩达深度学习学习笔记——C1W3——浅层神经网络-2

牧云@^-^@ 提交于 2021-01-26 10:25:38
3.6 激活函数 3.7 为什么需要非线性激活函数? 3.8 激活函数的导数 参考文章: sigmoid函数求导过程 https://blog.csdn.net/zhangyingjie09/article/details/82180199 Tanh激活函数及求导过程 https://blog.csdn.net/qq_35200479/article/details/84502844 3.9 神经网络的梯度下降法 3.10 (选修)直观理解反向传播 3.11 随机初始化 为什么不能将权重W初始化为零?因为这样做的话,同一隐层的每个节点的值将始终保持相同,失去了使用多个节点的意义(模型将过于简单,而难以有所作为) 来源: oschina 链接: https://my.oschina.net/u/4350591/blog/4924776

炼丹的不二法门

天涯浪子 提交于 2021-01-26 07:54:19
1.数据增广 简单,行之有效地增加训练数据量,提高模型的泛化能力。 水平翻转(horizontally flipping) 位移 裁剪 颜色抖动(color jittering) 组合操作   例如同时做旋转和随机尺度变换,此外还可以把每个patch中所有像素在HSV颜色空间中的饱和度和明度提升0.25-4次幂方,乘以0.7-1.4之间的一个因子,再加一个-0.1-0.1之间的值。同样你可以在色调通道(H)对每张图片或patch  的所有像素增加一个-0.1~0.1之间的值。 2.预处理 零均值化和标准化   零均值化: X - = numpy.mean( X, axis = 0 )   数据有 过大的均值可能导致参数的梯度过大 ,如果有后续的处理,可能要求数据零均值,比如主成分分析 PCA。零均值化并没有消除像素之间的相对差异,人们对图像信息的摄取通常来自于像素之间的相对色差,而不是像素值的高  低。归一化是为了 让不同维度的数据具有相同的分布 。假如二维数据(X1,X2)两个维度都服从均值为零的正态分布,但是X1方差为100,X2方差为1。那么对(X1,X2)进行随机采样在二维坐标系中绘制的图像,应该是狭长的椭圆  形。 归一化后 加快了梯度下降求最优解的速度并有可能提高精度 。考虑数据特征提取的表达式:   S = w1*x1 + w2*x2 + b   梯度计算:   dS

吴恩达深度学习学习笔记——C1W2——神经网络基础——作业2——用神经网络的思路实现Logistic回归

谁说胖子不能爱 提交于 2021-01-24 14:30:06
可以明确的说,如果不自己一步步调试作业代码,很难看懂作业内容。 这里主要梳理一下作业的主要内容和思路,完整作业文件可参考: http://localhost:8888/tree/Andrew-Ng-Deep-Learning-notes/assignments/C1W2 作业完整截图,参考本文结尾:作业完整截图。 作业指导及目标 Logistic Regression with a Neural Network mindset(用神经网络的思路实现Logistic回归) Welcome to your first (required) programming assignment! You will build a logistic regression classifier to recognize cats. This assignment will step you through how to do this with a Neural Network mindset, and so will also hone your intuitions about deep learning. Instructions: Do not use loops (for/while) in your code, unless the instructions explicitly ask

TensorFlow实现线性回归

拟墨画扇 提交于 2021-01-22 15:28:16
线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。 特点:只有一个自变量的情况称为单变量回归,大于一个自变量情况的叫做多元回归 通用公式:h(w) = w 1 x 1 +w 2 x 2 +w 3 x 3 +...+b=w T x + b 根据数据建立回归模型,w1x1+w2x2+…..+b = y,通过真实值与预测值之间建立误差,使用梯度下降优化得到损失最小对应的权重和偏置。最终确定模型的权重和偏置参数,最后可以用这些参数进行预测。 线性回归案例: 假设随机指定100个点,只有一个特征 数据本身的分布为 y = 0.7 * x + 0.8 这里将数据分布的规律确定,是为了使我们训练出的参数跟真实的参数(即0.7和0.8)比较是否训练准确 TensorFlow计算API: 运算 矩阵运算 tf.matmul(x, w) 平方 tf.square(error) 均值 tf.reduce_mean(error) 梯度下降优化 tf.train.GradientDescentOptimizer(learning_rate) 梯度下降优化 learning_rate:学习率,一般为0~1之间比较小的值 method: minimize(loss) return:梯度下降op 步骤分析: 1

手把手教你用 TensorFlow 实战线性回归问题

匆匆过客 提交于 2021-01-22 13:17:45
TensorFlow 实战线性回归问题 线性回归 (Linear Regression) 是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析,用来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。线性回归问题也是机器学习的入门级知识,下面就和小编一起来学习一下用 Python + TensorFlow 如何实现线性回归吧! 1、线性回归方程 单变量的线性回归方程可以表示为: y=w*x+b 本例我们将通过代码来生成一个人工数据集。随机生成一个近似采样随机分布,使得w=2.0,b=1,并加入一个噪声,噪声的最大振幅为0.4。即方程表示为: y=2.0*x+1 2、人工数据集生成 %matplotlib inline import matplotlib.pyplot as plt import numpy as np import tensorflow as tf # 设置随机数种子 np.random.seed(5) #采用np生成等差数列,生成100个点,每个点取值在-1到1之间 x_data = np.linspace(-1,1,100) # y=2x+1,其中,噪声的维度与x_data一致 y_data = 2*x_data + 1.0 + np.random.randn(*x_data.shape)*0.4