深度神经网络

神经网络优化器

只谈情不闲聊 提交于 2020-01-02 02:02:18
首先梯度下降算法一共有三个变形:BGD, SGD , MBGD, 这三种形式的区别就是取决于我们用多少数据来计算目标函数的梯度. 1.BGD( Batch gradient descent )   BGD 采用整个训练集的数据来执行一次更新:    for i in range(nb_epochs ):     params_grad = evaluate_gradient(loss_function , data , params)     params = params - learning_rate * params_grad   缺点是:     (1).Batch gradient descent is guaranteed to converge to the global minimum for convex error surfaces and to a local minimum for non-convex surfaces(凸函数可以保证到全局最优,非凸函数可能收敛到局部最优).     (2).As we need to calculate the gradients for the whole dataset to perform just one update, batch gradient descent can be very slow and is

烧脑!CMU、北大等合著论文真的找到了神经网络的全局最优解

笑着哭i 提交于 2019-12-27 07:16:50
烧脑!CMU、北大等合著论文真的找到了神经网络的全局最优解 机器之心 ​ 已认证的官方帐号 811 人赞同了该文章 选自arXiv,作者:Simon S. Du、Jason D. Lee、Haochuan Li、Liwei Wang、Xiyu Zhai,机器之心编译,参与:思源、王淑婷、张倩。 一直以来,我们都不知道为什么深度神经网络的损失能降到零,降到零不代表着全局最优了么?这不是和一般 SGD 找到的都是局部极小点相矛盾么?最近 CMU、北大和 MIT 的研究者分析了深层全连接网络和残差网络,并表示使用梯度下降训练过参数化的深度神经网络真的能找到全局最优解。 用一阶方法训练的神经网络已经对很多应用产生了显著影响,但其理论特性却依然是个谜。一个经验观察是,即使优化目标函数是非凸和非平滑的,随机初始化的一阶方法(如随机梯度下降)仍然可以找到全局最小值(训练损失接近为零),这是训练中的第一个神秘现象。令人惊讶的是,这个特性与标签无关。在 Zhang 等人的论文 [2016] 中,作者用随机生成的标签取代了真正的标签,但仍发现随机初始化的一阶方法总能达到零训练损失。 人们普遍认为过参数化是导致该现象的主要原因,因为神经网络只有具备足够大的容量时才能拟合所有训练数据。实际上,很多神经网络架构都高度过参数化。例如,宽残差网络(Wide Residual Network)的参数量是训练数据的

深度学习——递归原理

落花浮王杯 提交于 2019-12-25 03:36:55
QQ 1285575001 Wechat M010527 技术交流 QQ群599020441 纪年科技aming 递归 循环神经网络 RNN 不同于 神经网络 /卷积 输入batch -n 调节权重参数 w b b 无关联关系 batch–>更新w/b RNN b有相互关系 其希望传入的值 接收 序列化数据输入 b1 --> 时间/序列 联系b2 后同 manate 神经网络数据集 28*28 完整数据---->数据序列化预处理 来源: CSDN 作者: amingMM 链接: https://blog.csdn.net/qq_33608000/article/details/103685498

深度学习-自动训练参数

眉间皱痕 提交于 2019-12-15 20:03:02
卷积核:明显化特征 最大池化:提取特征,去掉不需要的特征 卷积层:普通神经网络的特殊化-未全连接-连接后未参数不同(训练参数缩小,对应数据集小的情况,防止过拟合,有利于提升计算速度) 全连接:普通神经网络(训练参数众多) 来源: CSDN 作者: chris__tina 链接: https://blog.csdn.net/chanleoo/article/details/89319094

feedforward neural network 学习笔记

删除回忆录丶 提交于 2019-12-09 13:10:15
前置神经网络是 是BP,CNN,RNN 的基础 , 先留个接口。后面再补充自己思考的内容。 参考: 深度学习笔记(1)--前馈神经网络 wiki 百科前馈神经网络 code: https://github.com/yunjey/pytorch-tutorial/blob/master/tutorials/01-basics/feedforward_neural_network/main.py#L37-L49 来源: CSDN 作者: weixin_42528089 链接: https://blog.csdn.net/weixin_42528089/article/details/103455415

【深度学习与神经网络】tensorflow训练自己的分类模型

爱⌒轻易说出口 提交于 2019-12-06 16:02:54
1. 准备训练用的图片集 因为我没有图片集,利用自动抓取百度图片的脚本。 # -*- coding: utf-8 -*- # @Time : 19-1-10 下午9:44 # @Author : Felix Wang import re import requests import json import random from multiprocessing import Pool def translate(content, tolang='zh', fromlang=None): User_Agent = [ 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Mobile Safari/537.36', 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Mobile Safari/537.36', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac

深度学习

旧街凉风 提交于 2019-12-06 15:16:10
深度学习概念: 深度学习是机器学习领域中一个新的研究方向,目的是为了实现人工智能应用。深度学习的概念源于人工神经网络的研究,神经网络是含多个隐藏层的多层感知器,构建神经网络动机在于建立模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据。 深度学习步骤: 如何学习深度学习: 推荐一套深度学习视频教程给大家,这套教程适合数学不好的小白来学习,没有繁杂的数学公式,讲解通俗易懂。 点击观看 来源: https://www.cnblogs.com/211xun/p/11992283.html

深度学习之神经网络与支持向量机

旧城冷巷雨未停 提交于 2019-12-06 02:46:35
从人人上转过来的 前言:本文翻译自deeplearning网站,主要综述了一些论文、算法已经工具箱。 引言: 神经网络( N eural N etwork)与支持向量机( S upport V ector M achines,SVM)是统计学习的代表方法。可以认为神经网络与支持向量机都源自于感知机(Perceptron)。感知机是1958年由Rosenblatt发明的线性分类模型。感知机对线性分类有效,但现实中的分类问题通常是非线性的。 神经网络与支持向量机(包含核方法)都是非线性分类模型。1986年,Rummelhart与McClelland发明了神经网络的学习算法 B ack P ropagation。后来,Vapnik等人于1992年提出了支持向量机。神经网络是多层(通常是三层)的非线性模型, 支持向量机利用核技巧把非线性问题转换成线性问题。 神经网络与支持向量机一直处于“竞争”关系。 Scholkopf是Vapnik的大弟子,支持向量机与核方法研究的领军人物。据Scholkopf说,Vapnik当初发明支持向量机就是想"干掉"神经网络(He wanted to kill Neural Network)。支持向量机确实很有效,一段时间支持向量机一派占了上风。 近年来,神经网络一派的大师Hinton又提出了神经网络的Deep Learning算法(2006年)

第一次神经网络作业,神经网络预测图片是否为猫的代码实现

混江龙づ霸主 提交于 2019-12-05 09:56:57
1.1.2 Building basic functions with numpy 1.1.2.2 numpy.exp, sigmoid, sigmoid gradient import numpy as np def sigmoid(x): s = 1/(1+np.exp(-x)) return s# 设sigmoid为s, s' = s*(1-s) def sigmoid_derivative(x): s = 1/(1+np.exp(-x)) ds = s*(1-s) return ds plt.figure(1)  # 编号为1的figure x = np.arange(-5, 5, 0.1)   y = sigmoid(x) plt.subplot(211)  # 将子图划分为2行,1列,选中2行中的第1行 plt.plot(x, y) y = sigmoid_derivative(x) plt.subplot(212)  # 子图中2行中的第2行 plt.plot(x, y) plt.show() 1.1.2.3 numpy.reshape(), numpy.shape def image2vector(image): """ Argument: image -- a numpy array of shape (length, height, depth) Returns

5-1对抗生成神经网络(GAN)--Keras实现

五迷三道 提交于 2019-12-05 09:33:09
点击查看完整代码 http://www.daimapi.com/neuralnetwork5_1/ 该代码利用Python3实现,利用到了深度学习工具包Keras。 Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras的主要特点:1.简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性);2.支持CNN和RNN,或二者的结合;3.无缝CPU和GPU切换。 # -*- coding: utf-8 -*- #DCGAN on MNIST using Keras import numpy as np import time from tensorflow.examples.tutorials.mnist import input_data from keras.models import Sequential from keras.layers import Dense, Activation, Flatten, Reshape from keras.layers import Conv2D, Conv2DTranspose, UpSampling2D from keras.layers import LeakyReLU, Dropout from keras.layers import