gpt4 book ai didi

机器学习--起手式

转载 作者:我是一只小鸟 更新时间:2023-01-05 14:31:09 28 4
gpt4 key购买 nike

几个贯穿始终的概念

当我们把人类学习简单事物的过程抽象为几个阶段,再将这些阶段通过不同的方法具体化为代码,依靠通过计算机的基础能力-- 计算 。我们就可以让机器能够“学会”一些简单的事物.

我们首先将视线聚焦在最简单的判断题上。而包括OCR,CV,自然语言处理在本质上来说就是对给定的图像(语句)做判断 。

判断:给定输入,得到一个输出 。

graph LR A[输入端数据] --> |算法,模型| B(输出端数据)

数据由我们学习的内容所决定.但是从现实生活中收集而来的数据,并不是机器能够"食用"的,需要我们通过一定的数据预处理,清洗数据以备使用. 。

而算法和模型决定了了输出端和输入端之间的关系.机器是否能够学会处理输入端的数据,需要合适的算法和模型的帮助 。

而机器学习不仅要从0到1,还要从1到100.这就意味着机器需要不断的练习.来提高正确率. 。

所以 数据、模型、算法和训练 是贯穿我们学习机器学习过程的四个关键词.也是一个面对问题建立模型最终实现的过程. 。

  • 数据部分:学习了解流行的数据流.知道数据处理的benchmark.学会常见的数据预处理方法,总结数据处理技巧. 。

  • 模型部分:学习常见的模型.各个模型相互关联加强记忆 。

  • 算法部分:误差损失函数,反向传播,梯度下降. 。

算法和模型的区别在于:模型是静态的神经网络,没有特殊性;而算法就是模型动态的调整以吻合特定问题的需要 。

  • 训练部分:降低训练时间,提高性能

环境配置

  • CUDA “训练”时的算力由显卡提供。CUDA为英伟达的底层显卡驱动(AMD暂时不了解)。
  • 主要使用Python内置的数学库来实现,推荐使用Anaconda来配置.

CUDA

1.打开NVIDIA控制台


Img

2.看一下有没有CUDA-GPUs

Img

3.下载CUBA

在NVIDIA控制界面的左下角,点击系统性息 查看一下驱动程序版本,对照下图查看,下载支持的CUDA的版本 。

我的驱动版本是512.72,所以支持的最新驱动是CUBA 11.8.X 附上链接以供查阅 。

下载CUDA 。

安装没有难度,只不过建议 路径不要出现中文字符 ,记住安装路径即可。安转完成之后 按下win+r键 打开cmd在命令行中输入nvcc -V然后回车,成功的话就会返回CUBA的版本号 。

安装Anaconda

这个安装比较简单( 路径不要出现中文字符 )建议去清华或者其他镜像库安装,下面讲述如何配置环境变量 。

环境配置

1.设置 -> 系统 -> 关于 -> 右侧目录中选择高级系统设置

Img

点击环境变量

Img

在path中添加anaconda文件夹和script

Img

conda install镜像配置

软件本体下载慢,python的一些包也下载慢。所以我们可以配置清华的镜像。 清华镜像网站 。

简要介绍: 1、现在用户目录下查看是否有.condarc文件 没有的话 在cmd命令行中执行 conda config -set show_channel_urls yes 然后进行修改。 2、修改之后执行 conda clean -i 。

Anaconda的使用

conda的好处在于我们可以按照需要配置环境,无论是Python版本还是其中包的版本和依赖 。

conda命令行

注意:使用conda命令时应该确定是对某个特定环境使用 。

                        
                          conda –version #查看conda版本,验证是否安装

conda update conda #更新至最新版本,也会更新其它相关包

conda update –all #更新所有包

conda update package_name #更新指定的包

conda create -n env_name package_name #创建名为env_name的新环境,并在该环境下安装名为package_name 的包,可以指定新环境的版本号,例如:conda create -n python3 python=python3.7 numpy pandas,创建了python3环境,python版本为3.7,同时还安装了numpy pandas包

conda activate env_name #切换至env_name环境

conda deactivate #退出环境

conda info -e #显示所有已经创建的环境 或者使用 conda env list

conda create –name new_env_name –clone old_env_name #复制old_env_name为new_env_name

conda remove –name env_name –all #删除环境

conda list #查看所有已经安装的包

conda install package_name #在当前环境中安装包

conda install –name env_name package_name #在指定环境中安装包

conda remove – name env_name package #删除指定环境中的包

conda remove package #删除当前环境中的包

conda env remove -n env_name #强制删除环境

                        
                      

先来安装比较重要的一个包numpy来试试手 先要进入base环境 ,然后执行conda install 命令.

也可以自行创建新环境,然后在新环境中安装.

Anaconda Navigator 使用

四个主要的界面

home页面

选择一个环境,然后打开应用开发. 有一些是自带安装了的,有一些是我们可以安装的 比如我们可以点击launch打开预先安装了的Jupyter Notebook 。

environment页面

Img

learning页面

提供了绝大多数python相关的官方文档.相比B站上的教程这里讲述的会更加具体详细系统可以按需查找 。

community页面

提供了常见的python论坛,像著名的stack overflow 。

Jupyter Notebook 使用

Jupyter Notebook小巧玲珑,实时交互,单独的cell之中可以单独执行,无需从头执行代码,自动保存,支持markdown,Latex公式学习思路,非常适合学习者使用. 。

                        
                          + Jupyter Notebook
    + 安装,打开,问题调试
        + Anaconda
        + 命令行
    + 调教
        + 修改打开的默认目录
        + 关闭,退出
    + 使用
        + 快捷键
        + Markdown

                        
                      

打开,安装,问题调试

可以在anaconda navigator中直接点lauch就行,不再赘述,如果打不开, 修复bug ,或者尝试通过命令行打开。 下面讲述 。

base环境

已经默认安装了Jupyter Notebook 我们win+r 再输入cmd 打开命令行 conda activate base 激活base环境 Jupyter Notebook 打开 Jupyter Notebook 。

1.请不要关闭命令行窗口不然无法操作 2.如果没有跳转浏览器, 修复bug ,或者打开浏览器打开最后的链接 。

新环境

创建一个名为Epictus的python环境 conda create -n Epictus python 不要忘记加上python了 也可以使用 conda create -n Epictus python=版本 安装指定版本的Python 。

新创建的环境中不包含 Jupyter Notebook使用 conda install Jupyter Notebook 再输入 Jupyter Notebook 。

调教

改变储存目录

我们只要在目标目录下打开 Jupyter Notebook即可 。

                        
                          cd 目标路径

盘符:

                        
                      

Img

关闭,退出

使用完毕可以在命令行窗口连按两次[Ctrl+c]关闭服务 。

使用

快捷键

Jupyter Notebook有两种不同的键盘输入模式。编辑模式允许您在单元格中键入代码或文本,并由绿色单元格边框指示。命令模式将键盘绑定到笔记本级别的命令,并由带有蓝色左边距的灰色单元格边框指示。 具体的快捷键按 H键 编辑模式和命令模式按 Esc键 切换 。

markdown

在markdown中还可以输入latex公式 。

Matplotlib

最流行的Python绘图库,名字取自MATLAB,数据可视化工具 conda install Matplotlib 进行安装 没有必要从头学,只要根据自己想要画的图找到代码再把自己的数据输入就OK了,经常出现的图代码也会熟悉的,属于熟能生巧的技能.

Numpy

大名鼎鼎的 Numpy究竟是什么

Numerical Python的缩写 。

  • 一个开源的Python科学计算库
  • 方便的矩阵,数组运算(与matlab相比各有千秋 numpy官方文档 )
  • 包括线性代数、傅里叶变换、随机数生成等大量函数

以上的特点使得Numpy比直接编写python代码:

  • 更加简洁:数组和矩阵的引入
  • 更加高效:数组储存效率比原生list高,numpy以c语言来实现
    Img

学习目标

主要利用的是其中narray这一对象,所以首先掌握对于narray的各项操作,然后对于其他的操作在后面实际操作中在学习. 。

narray

实际上就是一个数表,只起到储存数的作用. 厉害的不是narray,而是其背后的代数学的发展.当然我们不能否认采用c语言之后对于性能的优化.但是归根到底是因为数表这一个方式更加适合运算. 更加适合求解方程组(在代数学中矩阵的出现就是为了求解方程) 更加适合加减乘除 。

属性

属性名 含义
shape array的形状
ndim 表示array的维度
size 表示array元素的数目
dtype array中元素的数据类型
itemsize 数组中每个元素的字节大小
{.small}

创建array的方法

  • 转化python原生的list和嵌套列表
  • 使用预定函数arrange,linspace等创建等差数组
  • 使用ones,ones_like,zeros,zeros_like,empty,empty_like,full,full_like,eye等创建
  • 生成随机书的random模块创建

array的两个要点就是元素和形状,确定两者array就确定了. 前菜--Numpy;详细介绍 。

数据处理

  • 数据采集
  • 数据清洗
  • 数据标准化
  • 数据增强

数据采集

实际上就是爬虫。现代的数据网络每秒产生的数据就成千上万个,想要得到我们想要的数据,我们就必须要学会使用爬虫自动访问网页回去信息.

数据清洗

爬虫返回的数据千奇百怪,不乏有错误的“脏”数据,主要包括一致性检查和无效值/缺失值处理 但是对于圣都学习来说,这些错误本来就是需要,甚至对于干净的数据我们还要人为添加噪声. 所以我们的数据清洗主要是针对人为造成的错误 。

数据标准化

归一化,归一化有很多的理解的方式.把数据进行归一化的最直观的好处就是单位消失了.那后续的好处会在算法和模型的使用中显现出来的. 。

最简单的归一化方法就是离差标准化,也叫做min-max标准化或者缩放归一化. 。

                        
                          def Normalization(x):
    return [(float(i)-min(x))/float(max(x)-min(x)) for i in x]

                        
                      

但是这种方法在每次最大值和最小值变化的时候都要重新计算 。

所以最为常见的方法是标准差归一化,也叫做z-score标准化。经过处理的数据符合高斯分布,均值为0,标准差为1 先求出整体样本的均值和标准差,让每个样本的取值减去均值在除以标准差 。

                        
                          import numpy as np

def z_score(x):
    x -= np.mean(x)
    x /= np.std(x)
    return x

                        
                      

还有Decimal scaling小数定标标准化,对数Logistic模式,atan模式,模糊量化模式。可以Google scholar一下 。

数据增强

深度学习模型是否强大和训练的数据集有很大的关系,至少要几千次的训练才能完成一个简单的人物。 当数据不够的时候怎么办呢? 我们可以对已有的数据进行整容,添加噪声等等的方法来自己造数据.

  • PyTorch中就自带图像的旋转功能
  • Mixup把几张图片混合起来
  • 添加噪声
  • GAN网络中有一个自动生成模型的功能
  • 那对于自然语言处理,我们可以先机翻到英文在翻回来

最后此篇关于机器学习--起手式的文章就讲到这里了,如果你想了解更多关于机器学习--起手式的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com