卷积神经网络的算法过程,卷积神经网络应用举例

本文深入探讨卷积神经网络(CNN)的算法过程,包括损失函数的正则化、Python构建CNN的方法、损失函数与激活函数的选择。CNN通过卷积、ReLU激活和池化操作提取特征,深度学习中,交叉熵损失函数常与Sigmoid或Softmax配合,以解决梯度消失问题。ReLU激活函数在CNN中广泛应用,缓解梯度消失现象。
摘要由CSDN通过智能技术生成

1、卷积神经 损失函数怎么加入正则化

用一个卷积核滑动图片来提取某种特征(比如某个方向的边),然后激活函数用ReLU来压制梯度弥散。对得到的结果用另一个卷积核继续提取+reLU,然后池化(保留区域最大或者用区域平均来替换整个局部区域的值,保证平移不变性和一定程度上对过拟合的压制)
之后“深度”的话,就会需要对池化后的结果继续用不同的卷积核进行 “卷积+relu”再池化的工作。最后得到的实质是一个图片的深度特征,然后实际分类需要另外加一层,一般是softmax。
(也就是说如果对一个现成的已经训练完毕的卷积神经网络模型,只保留除了最后一层之外的部分,然后输入训练图片,把网络的输出重新送入一个多类的SVM再训练,最后也能得到差不多的结果,取决于svm的参数。)

谷歌人工智能写作项目:小发猫

2、怎样用python构建一个卷积神经网络

用keras框架较为方便

首先安装anaconda,然后通过pip安装keras

以下转自wphh的博客卷积神经网络损失函数实现

#coding:utf-8
'''
    GPU run command:
        THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python cnn.py
    CPU run command:
        python cnn.py
2016.06.06更新:
这份代码是keras开发初期写的,当时keras还没有现在这么流行,文档也还没那么丰富,所以我当时写了一些简单的教程。
现在keras的API也发生了一些的变化,建议及推荐直接上keras.io看更加详细的教程。
'''
#导入各种用到的模块组件
from __future__ import absolute_import
from __future__ import print_function
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation, Flatten
from keras.layers.advanced_activations import PReLU
from keras.layers.convolutional import Convolution2D, MaxPooling2D
from keras.optimizers import SGD, Adadelta, Adagrad
from keras.utils import np_utils, generic_utils
from six.moves import range
from data import load_data
import random
import numpy as np
np.random.seed(1024)  # for reproducibility
#加载数据
data, label = load_data()
#打乱数据
index = [i for i in range(len(data))]
random.shuffle(index)
data = data[index]
label = label[index]
print(data.shape[0], ' samples')
#label为0~9共10个类别,keras要求格式为binary class matrices,转化一下,直接调用keras提供的这个函数
label = np_utils.to_categorical(lab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值