理解

人工神经网络:(ANN)对一组输入信号和一组输出信号之间的关系进行建模,使用的模型来源于人类大脑。
激活函数:这个过程涉及对总的输入信号求和,和确定是否能满足激活阈值。如果满足,神经元传递信号,否则,不操作。又称为阈值激活函数。激活函数有很多,自变量是输入和,因变量是输出值,他们之间的差异主要是输出信号的范围不同。要认识到,许多激活函数,影响输出信号的输入范围值是相对较窄的。过高或者过低的输入信号,输出信号会恒为1或0,。因为本质上我们要将输入值压缩到一个较小的范围,(通过标准化或规范化完成),这样可以预防取值尺度很大的特征支配取值尺度较小的特征,也能更快地训练。

网络拓扑:学习能力来源于拓扑结构。有3个关键特征:层的数目,网络中信息是否允许向后传播,网络中每一层内的节点数。

1.层的数目:
单层网络:只有一组连接权重
多层网络:添加一个或多个隐藏层(在信号达到输出节点之前处理来着输入节点的信号)
全连接:前一层的每个节点都连接到下一层的每个节点(这不是必须的)

2.信息传播方向:
前馈网络:网络上的输入信号在一个方向上从一个节点到另一个节点连续第传送,直到到达输出层。
递归网络(反馈网络):允许信号使用循环在两个方向传播。有时候会增加一个短期记忆(又叫延迟),这包含了能够理解经过一段时间的时间序列能力。

3.每一层的节点数:
没有一个可信的规则来确定隐藏层中神经元的个数。过多神经元可能过拟合。最好的做法是基于验证数据集,使用较少的节点产生适用的性能。

用向后传播训练神经网络

向后传播:通过两个过程的多次循环进行迭代。一个迭代成为一个新纪元,通常开始之前随机设置权重,算法通过过程循环,直到到达一个停止准则。包括:前向阶段——神经元被激活后,沿途应用每一个神经元的权重和激活函数,一旦到达最后一层,产生一个输出信号。后向阶段——由前向阶段产生的输出信号与训练数据的真实目标值进行比较,差异产生的误差在网络中向后传播,修正神经元之间的连接权重。
梯度下降:吴恩达在机器学习课上举了这样的例子,你在山坡的某一点要下山,想找最快下山的路,那么就要找到你周围坡度下降最快的方向迈一步,接着再找下降最快的方向,这样每次都选择下降最快的方向,能很快找到最低点。(可能是局部最低点)

R语言实现:
compute函数

compute(x, covariate, rep = 1)
Arguments

x: an object of class nn.
covariate: a dataframe or matrix containing the variables that had been used to train the neural network.
rep:an integer indicating the neural network’s repetition which should be used.(隐藏层的数目,当隐藏层数目为1时,相当于线性模型)

>install.packages("neuralent")
>library(neuralent)
> concrete_model<-neuralnet(strength~cement+slag+ash+water+superplastic+coarseagg+fineagg+age,concrete_train)
> plot(concrete_model)
> model_results<-compute(concrete_model,concrete_test[1:8])
> predict_strength<-model_results$net.result
> cor(predict_strength,concrete_test$strength)#获取两个数值向量的相关性,接近1表示两个变量有很强的相关性[,1]
[1,] 0.7149014767

优化模型:可以提高隐藏层的个数

支持向量机(SVM)

理解:目标是创建一个边界平面(成为超平面),使得任意一边的数据划分都是均匀的,这个平面定义了数据点之间的界限,这些数据点代表根据他们的特征值绘制在多维空间的案例。比如二维空间划分的是一条直线,三维空间划分的是一个平面。
寻找最大间隔:如果分割线不止一种选择,应该如何划分?寻找创建两个类之间最大间隔的最大间隔超平面。
支持向量:每个类中最接近最大间隔超平面的点,每个类必须至少有一个支持向量,也可能有多个。

  • 线性可分:如果类是线性可分,最大间隔超平面要尽可能远离这组数据点的外边界,这些外边界形成凸包,最大间隔超平面就是凸包直接最短距离的垂直平分线。
  • 非线性可分:使用松弛变量,在距离花费上增加成本(违反约束的点),我们试图使成本最小。

或者,有一种核技巧(将问题映射到更高维的空间)

举例:图像字符识别

>install.packages("kernlab")
> letter_classifier<-ksvm(letter~.,data=letters_train,kernel="rbfdot")
> letter_predictiobs<-predict(letter_classifier,letter_test)
> agreement<-letter_predictiobs==letter_test$letter
> table(agreement)
agreement
FALSE  TRUE 281  3719
> prop.table(table(agreement))
agreementFALSE    TRUE
0.07025 0.92975 

优化:选择不同的核函数

机器学习(六):黑箱方法——神经网络和支持向量机相关推荐

  1. 黑箱方法-神经网络①

    人工神经网络 人工神经网络的概念 人工神经网络(Artificial Neural Networks,ANN)是对一组输入信号和一组输出信号之间的关系进行建模,使用的模型来源于人类大脑对来自感觉输入的 ...

  2. R语言实现 黑箱方法——神经网络

    用人工神经网络对混泥土的强度strength进行建模** ---- Step 1: Exploring and preparing the data ----探索与准备数据 以下有8个描述混合物成分的 ...

  3. 神经网络异常检测方法和机器学习异常检测方法对于入侵检测的应用?

    神经网络异常检测方法和机器学习异常检测方法对于入侵检测的应用? 神经网络异常检测方法神经网络入侵检测方法是通过训练神经网络连续的信息单元来进行异常检测,信息单元指的是命令爱发猫 www.aifamao ...

  4. 【转】 机器学习入门——浅谈神经网络

    [转] 机器学习入门--浅谈神经网络 本文转自:https://blog.csdn.net/bitjoy/article/details/50464989 先从回归(Regression)问题说起.我 ...

  5. 前馈神经网络与支持向量机实战 --- 手写数字识别

    前馈神经网络与支持向量机实战 - 手写数字识别 文章目录 前馈神经网络与支持向量机实战 --- 手写数字识别 一.前馈神经网络介绍 二.支持向量机介绍 三.数据集说明 四.环境准备 五.实验要求 六. ...

  6. MachineLearning 13. 机器学习之降维方法UMAP及可视化 (umap)

    点击关注,桓峰基因 桓峰基因公众号推出机器学习应用于临床预测的方法,跟着教程轻松学习,每个文本教程配有视频教程大家都可以自由免费学习,目前已有的机器学习教程整理出来如下: MachineLearnin ...

  7. MachineLearning 12. 机器学习之降维方法t-SNE及可视化 (Rtsne)

    点击关注,桓峰基因 桓峰基因公众号推出机器学习应用于临床预测的方法,跟着教程轻松学习,每个文本教程配有视频教程大家都可以自由免费学习,目前已有的机器学习教程整理出来如下: MachineLearnin ...

  8. 机器学习笔记三—卷积神经网络与循环神经网络

    系列文章目录 机器学习笔记一-机器学习基本知识 机器学习笔记二-梯度下降和反向传播 机器学习笔记三-卷积神经网络与循环神经网络 机器学习笔记四-机器学习可解释性 机器学习笔记五-机器学习攻击与防御 机 ...

  9. 机器学习笔记之前馈神经网络(一)基本介绍

    机器学习笔记之前馈神经网络--基本介绍 引言 从机器学习到深度学习 频率学派思想 贝叶斯学派思想 深度学习的发展过程 引言 从本节开始,将介绍前馈神经网络. 从机器学习到深度学习 在机器学习笔记开始- ...

最新文章

  1. 浅议Windows 2000/XP Pagefile组织管理
  2. SpringBoot集成Mybatis动态多数据源后,MybatisPlus的IPage失效的问题解决方案
  3. 【干货】策划一个线上活动的整体流程
  4. NYOJ 467 中缀式变后缀式
  5. 【若依(ruoyi)】字典管理
  6. 实现深拷贝的几种方法
  7. ubuntu 16.04 python3.4 升级为 python3.6
  8. java double 存储_Java语言中:float、double在内存中存储方式
  9. Wireshark使用技巧详解
  10. atitit。mssql sql server 转换mysql 及 分页sql ast的搭建
  11. testbench实例 vhdl_VHDL的testbench的编写
  12. 技术图文:基于“科比投篮”数据集学Pandas
  13. 微波射频学习笔记5--------同轴线与射频接头
  14. #美化ggplot2生成的原始图片至清爽的感觉
  15. 安捷伦mso8104a示波器电源烧毁故障维修【图文】
  16. 科学家揭开宿醉原因:酒后身体缺水导致
  17. 程序员写了个开源软件,完成了舔狗的绝地反杀...
  18. ST-LINK下载程序出现flash download failed - ‘cortex m4‘
  19. 隐藏tab标签完美解决办法
  20. TIA博图——基本操作

热门文章

  1. 个人写专利:(一)什么是专利?
  2. php 错误32767,Mymps error: Duplicate entry '32767' for key 'PRIMARY'报错怎么办
  3. vue项目跳转总是返回主页面解决
  4. 自己实现的一个多层RecyclerView进行嵌套并吸顶的开源框架
  5. UG二次开发BOM功能GRIP系统初始设置
  6. 卸载 uniaccessagent 软件_电脑简洁实用的软件
  7. Spring Boot - 花式加载配置文件
  8. Android培训全面课程(32天实战课程)
  9. 10进制转换为16进制
  10. 『面试知识集锦100篇』2.linux篇丨shell基础命令全集,我奶奶的速查手册!!