系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、pandas是什么?
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、使用步骤
1.引入库
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
机器学习
强化学习
- 学会适应环境,类似于遗传算法
- 有监督学习,但是这个标签需要一次次试,而不是直接给出一个过程,有最终打分结果但是不教方法
基于概率的是离散的,基于价值的是连续的,价值的只选价值最高的,不可能会选其他的,这就是AlphaGO的思路
Qlearning
- 目的:决策一步并衡量当前操作有多么好,
α为学习效率决定这一层误差有多少要被学习,S2为猜测的状态,还没有进行下去,γ为衰减值,R为到达S2的奖励值,新S2为下一步S2的实际值。
通过γ值的调解就能使得机器人从没远见到有完全远见之间变化,使得具有远见
Sarse
与Qlearning相似但是会直接行动,没有max的取舍,因此会学习自己已经走过的确定的路,而Qlearning会有max的取舍,都是不确定的。因此Qlearning会更极端和不择手段,但是Sarsa会更谨慎点
Sarsa(0)是第一次走完再更新一次行为准则
Sarsa(1)是第一次走完后保持这个行为准则继续走
Sarsa(n)是先走完n个回合后再更新,2次及以上的走完再更新
Sarsa(lambda)为在0~1之间的,代表从[终点只和最近的那一步有关,终点和从起点开始的全部步都有关],目的是为了减少过程中打转转的无意义过程,形成模型
Deep Q Network
Policy Gradients
有学习奖惩值, 根据自己认为的高价值选行为, 比如 Q learning, Deep Q Network, 也有不通过分析奖励值, 直接输出行为的方法, 这就是今天要说的 Policy Gradients ,Policy Gradients 直接输出动作的最大好处就是, 它能在一个连续区间内挑选动作, 而基于值的, 比如 Q-learning, 它如果在无穷多的动作中计算价值, 从而选择行为, 这, 它可吃不消.
Policy Gradients 的神经网络的误差反向传递为0,因为靠奖励来左右我们的神经网络反向传递.【对好的正反馈,不好的逆反馈】
Policy Gradients 则是回合更新,
Actor-Critic
Actor-Critic 涉及到了两个神经网络, 而且每次都是在连续状态中更新参数, 每次参数更新前后都存在相关性, 导致神经网络只能片面的看待问题, 甚至导致神经网络学不到东西
进化算法
在进化策略中, 可以有两种遗传性系被继承给后代, 一种是记录所有位置的均值, 一种是记录这个均值的变异强度, 有了这套体系, 我们就能更加轻松自在的在实数区间上进行变异了. 这种思路甚至还能被用在神经网络的参数优化上, 因为这些参数本来就是一些实数.
我们更偏向于先固定神经网络的结构, 让这个结构蚕卵, 生出很多和原始神经网络结构相同, 但联结强度稍稍不同的网络. 这些宝宝网络中肯定有好有坏, 进化策略中有趣的一步就来了, 下一代的爸爸是所有宝宝的综合体, 这个综合体中, 好宝宝的联结会占有更多比例, 坏宝宝占有更少比例. 通过这种形式让好宝宝渐渐主宰这个生存环境.
神经网络
- 属于梯度下降法的分支
- 有监督学习
- 人工神经网络和神经网络
- 人工神经网络的节点不会再更改
- 误差反向传递:进入节点到达输出再返回来跟进入节点相对比有一个误差,看传递效率,修正后重新进入,更新神经元
- 而生物神经网络是通过刺激产生新的连接,形成反馈
- 每个神经元都有自己的刺激函数,只有部分的神经元被激励,通过结果修正参数
卷积神经网络CNN(深度学习)
卷积不是对每个像素的输入做处理,而是对每个区域进行处理,目的加强图片的连续性
- 网络有个批量过滤器(卷积核),每次对每小块进行整理,做积分运算,对一张图片的部分做卷积后长宽减少高度(位深)增加,因为包含了更多的边缘信息,最后给普通的分类层上
- 每次卷积丢失的信息可以通过池化来修改,尽量不压缩长宽,保留更多的信息,压缩信息的工作是池化
循环神经网络RNN(深度学习)
- 把之前的每次网络产生的状态的结果进行时序上的叠加,比如第一次出来的结果给第二次的输入,和第二次原本的输入一起作为第二次的输入,依次进行
LSTM RNN循环神经
长短期记忆的RNN由于RNN在传递得到最后和结果的误差,然后一步步返回时会给出每一步的权重,这样最开始的会变得微不足道或者爆炸,出现梯度爆炸或者消失,意思就是RNN无法回忆久远的记忆
自编码
对原有数据压缩,再减压——PCA降维
生成GAN对抗网络
- 对抗网络是用对小白裁判对产生的随机数评价的进行评价来反馈随机数的好坏,达到模拟灵感的作用。(评价小老师的工作)
迁移学习
利用已有的训练好的机器学习模型将其多态到其他类型的机器学习算法,换一下输出层之类的就可以节省训练时间
检验神经网络
解决过拟合问题也可以用交叉验证或者测试集、和L1L2正规化、增大数据量、在神经网络中可以每次训练随机取消一些神经元训练,避免过于依赖某些神经元
激励函数
对线性方程y=kx加上非线性算子AF有y=AF(kx),AF可以选sigmoid等函数,使得问题接近实际情况。放在神经元函数中,每个神经元节点就是个激励函数,但是要可以微分,因为要传递
批标准化
L1L2正则化
使得误差函数不仅取决于最终值,而且取决于系数的大小,
通用机器学习
自然语言处理
NLP
用TF-IDF用词频和逆文本词频指数来使得找出文章中的关键词,在用逆词频筛选掉语气词等等不重要的词,也就是跟其他文章进行对比,TF与IDF 得出的系数相乘就有可以得到权重下的值
词向量
当文章作为向量,向量与向量之间不关心距离而关心向量的方向,只要是都在一个方向的都认为是一个东西分类,通过cos函数算出夹角,训练词向量通过非监督学习在原始语料上做非监督学习,取一个词段中除了一个的剩余全部词向量来预测被选出的一个,这样搞清楚上下文,也可以拆分全部词段作为预训练模型,用word2vec预训练好了词汇的特征表达,然后在其他的场景下拿着预训练结果直接用