强化学习
强化学习定义: 强化学习是智能体(Agent)以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏,强化学习不同于连接主义学习中的监督学习,主要表现在强化信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动作。由于外部环境提供的信息很少,RLS必须靠自身的经历进行学习。通过这种方式,RLS在行动-评价的环境中获得知识,改进行动方案以适应环境。
强化学习是从动物学习、参数扰动自适应控制等理论发展而来
原理:
如果Agent的某个行为策略导致环境正的奖赏(强化信号),那么Agent以后产生这个行为策略的趋势便会加强。Agent的目标是在每个离散状态发现最优策略以使期望的折扣奖赏和最大。
强化学习把学习看作试探评价过程,Agent选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给Agent,Agent根据强化信号和环境当前状态再选择下一个动 ...
k-means
K-means 笔记
K-means 一种无监督的聚类算法
将相同类别的点聚集在一起,对于不同类别尽量的区分开
核心目标: 将给定的数据划分为K个簇,并且给出每个簇的中心点,即质心K-means 算法步骤
数据预处理: 剔除离群点、数据归一化、数据标准化
初始化: 随机选择K个中心点u(0)1, u(0)2, u(0)3, …, u(0)K
定义损失函数:
交替迭代(t为步数,重复一下两个步骤直到J收敛)
对于每个样本点,将其分配到距离最近的簇
对于每个簇,重新计算聚类质心
K-means算法缺点
人工选取k值, 不一定符合数据分布
收初始值和离群点的影响较为严重,稳定性差## K-means算法优点
对于大数据集,算法时间读咋读为线性O(NKT)
N: 样本点个数K: 聚类中心个个数T: 迭代轮数
局部最优解通常已经可以满足问题需要
k-means算法调优
K值选择(手肘法)
k-means算法改进
改进点: 对初始值的选择进行优化
k-means++算法
改进思想: 选取第n+1个聚类中心时:
距离其他聚类中心越远,被选中的概率越大
吴恩达机器学习第一周作业
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdata = np.loadtxt('ex1data1.txt', delimiter=',')x = data[:, 0]y = data[:, 1]m = y.sizey = y.reshape(-1, 1)plt.figure(0)fg1 = plt.scatter(x, y, marker='x', c='r')plt.xlabel('profit in $10,000s')plt.ylabel('Population of City in 10,000s') ...
决策树 笔记
决策树基础决策树自上而下,树形分类的算法;有监督的算法学习过程
特征选择
决策树生成
决策树剪枝
熵
随机变量的不确定程度
$ H(x) = -\sum_{i=0}^n pi * log(pi) $
熵越大不确定性就越大
ID3 算法步骤
计算数据集D的熵
计算某个特征A对于数据集D的条件熵H(D|A)
计算信息增益g(D,A) = H(D) - H(D|A)局限性
只能处理离散型变量,无法处理连续性变量
对样本缺失值比较敏感
每次分裂亲相遇取值多的特征,发哦之泛化性能较差
决策树的剪枝
提高决策树的泛化能生长力剪枝方法预剪枝树节点分裂之前,先计算划分是否可以提升模型的泛化能力
三种情况
当树达到一定的深度时,停止树的生长
到达当前节点的样本数量小于某个阈值时,停止生长
计算每次分裂对测试集准确率的提升,小于某个阈值时不再生长后剪枝完全生长成的决策树,然后自底向上进行减枝
原则
测试集上准确率的提升
logisticRegression
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106from sklearn.model_selection import train_test_splitimport matplotlib.pyplot as pltimport numpy as npimport pandas as pd# Data loadiris = pd.read_csv('./Iris/iris.data')# Data processiris = iris.values.reshape((-1, 5))xData = iris[:, 0:4].reshape((-1, 4))yD ...
线性代数
线性代数标量、向量、矩阵和张量
标量:一个标量一个单独的数。
斜体小写的变量名称表示;
向量:一个向量就是一列数。
粗体小写的变量名称表示;
矩阵:矩阵是一个二维数组。
粗体的大写变量名称表示;
“:”表示水平坐标。Ai,:表示A中i行上的一排元素。
f(A)i,j表示汉书f的作用下在A上输出的矩阵的第i行第j列元素。
张量:一般的,一个数组中的元素分布在若干维坐标的规则网络,我们称之为张量。记作Ai,j,k
深度学习中会使用一些简化的式子,如:C=A+b。其中Ci,j=Ai,j+bj。这种隐式地复制向量b到很多位置的方式,称为广播。
矩阵和向量相乘C = AB其中要求A为mxn,B为nxp,则C为mxp。**元素对应乘积(Hadamard乘积)**:两个矩阵对应元素乘积。
单位矩阵和逆矩阵A-1A=In
行列式为0的矩阵一定不可逆.
若矩阵可逆则他的逆一定唯一.
DeepLearning
深度学习 深度学习逐渐成为人工智能领域的研究热点和主流发展方向。它蕴含了什么样的魅力可以让国家出台政策支持并且持续吸引社会关注?下文将从深度学习的历史变迁、特点、网络结构、技术类别、应用领域和面临的问题等几个角度去了解。
一、深度学习的历史与变迁 一般认为,迄今为止深度学习已经经历了三次发展浪潮:20世纪40年代到60年代,深度学习的雏形出现在控制论中;20世纪80年代到90年代,深度学习表现为联结主义;直到2006年,才以深度学习之名为众人所知。 第一次浪潮开始于20世纪40年代到60年代的控制论,随着生物学习理论的发展和第一个模型的实现(如感知机),能实现单个神经元的训练。控制论是从神经学角度出发的简单线性模型。这些模型被设计为使用一组 n 个输入 x1,…, xn 并将它们与一个输出 y 相关联。这些模型希望学习一组权重w1,…, wn,并计算它们的输出 f(x, w) = x1w1 + … + xnwn。这第一波神经网络研究浪潮被称为控制论。 第二次浪潮开始于 1980-1995 年间 ...
butterfly主题地址记录
Butterfly主题Butterfly主题设置帮助网址
Butterfly 主题安装Butterfly 安装文档主题页面
主题页面
Butterfly 安装文档主题配置-1
主题配置一
Butterfly 安装文档主题配置-2
主题配置二
Butterfly 安装文档主题问答
主题问答
Butterfly 安装文档进阶教程
进阶教程