机器学习基本概念

机器学习按学习方法可分为:有监督(Supervised Learning)、无监督(Unsupervised Learning)、强化学习(Reinforcement Learning)

  1. 有监督学习:数据集包含样本 x 与标签 y ,训练时,通过计算模型的预测值与真实标签 y 之间的误差来优化网络参数 𝜃,使得网络下一次能够预测更精准

    常见的有监督学习算法:线性回归、逻辑回归、支持向量机、随机森林等

  2. 无监督学习:对于只有样本 x 的数据集,算法需要自行发现数据的模态。其中有一类将自身作为监督信号(自监督学习(Self-supervised Learning)),即模型需要学习的映射为:

    [f_theta:x->x
    ]

    在训练时,通过计算模型的预测值与自身 x 之间的误差来优化网络参数 𝜃

    常见无监督学习算法:自编码器、生成对抗网络等

  3. 强化学习:通过与环境进行交互来学习解决问题的策略的一类算法

    常见强化学习算法:DQN 、PPO等

学习结果分类:

  1. 预测(Prediction):一般用回归等模型
  2. 聚类(Clustering):K-means等方法
  3. 分类(Classification):支持向量机(SVM)、逻辑回归、朴素贝叶斯
  4. 降维(Dimentional reduction):主成分分析法(PCA 纯矩阵运算)--- 特别是在文本问题中,可能会包含数百万维,运算复杂度过高,而其中大部分都是冗余信息或贡献度不大的信息,因此,为了运算效率,要舍弃其中的一部分信息

深度学习(Deep learning)

发展时间线:

机器学习基本概念

特点:

  • 数据量
  • 计算力
  • 网络规模
  • 通用智能:设计出一种能像人脑一样可以自动学习,自我调整

深度学习应用:

  1. 计算机视觉(CV)
    • 图片识别(Image Classfication):分类问题,神经网络输入为图片数据,输出为当前样本每个类别的概率。经典网络模型由 VGG 系列、Inception 系列、ResNet 系列等
    • 目标检测(Object Detection):通过算法自动检测出图片中常见物体的大致位置,常用边界框(Bounding box)表示,并分类出边界框中物体的类别信息,常见的目标检测算法有 RCNN,Fast RCNN,Faster RCNN,Mask RCNN,SSD,YOLO 系列 等。
    • 语义分割(Semantic Segmentation):通过算法自动分割并识别出图片中的内容,可以 将语义分割理解为每个像素点的分类问题,分析每个像素点属于物体的类别。常见的语义分割模型有 FCN,U-net,SegNet,DeepLab 系列等
    • 视频理解(Video Understanding):常见任务有视频分类,行为检测,视频主体抽取等。常用的模型有 C3D,TSN,DOVF,TS_LSTM 等
    • 图片生成(Image Generation):通过学习真实图片的分布,并从学习到的分布中采样而获 得逼真度较高的生成图片。目前主要的生成模型有 VAE 系列,GAN 系列等。
  2. 自然语言处理(NLP)
    • 机器翻译(Machine Translation):常用的机器翻译模型有 Seq2Seq,BERT,GPT, GPT-2 等。
    • 聊天机器人(Chatbot):通过机器自动与 人类对话,对于人类的简单诉求提供满意的自动回复,提高客户的服务效率和服务质量。
    • 文本风格迁移(Text Style Transfer):在不改变文本内容的前提下,将文本的风格转换成另一种风格(如将positive-->negative),常用模型有 GAN系列等
    • 摘要提取
  3. 强化学习
    • 虚拟游戏 :目前常用的虚拟游戏平台有 OpenAI Gym, OpenAI Universe,OpenAI Roboschool,DeepMind OpenSpiel,MuJoCo 等,常用的强化学 习算法有 DQN,A3C,A2C,PPO 等。
    • 机器人(Robotics)
    • 自动驾驶(Autonomous Driving)

主流框架

  • Scikit-learn :一个完整的面向机器学习算法的计算库,内建了常见的传统机器学习算 法支持,文档和案例也较为丰富,但是 Scikit-learn 并不是专门面向神经网络而设计 的,不支持 GPU 加速,对神经网络相关层实现也较欠缺。
  • Caffe:主要面向使用卷积神经网络的应用场合,并 不适合其他类型的神经网络的应用。Caffe 的主要开发语言是 C++,也提供 Python 语 言等接口,支持 GPU 和 CPU。2017 年 Facebook 推出了 Caffe 的升级版本 Cafffe2,Caffe2 目前已经融入到 PyTorch 库中。
  • PyTorch:以 Python 作为主要开发语言,采用命令式编程,使得搭建网络和 调试网络非常方便
  • Keras:基于 Theano 和 TensorFlow 等框架提供的底层运算而实现的高层框架, 提供了大量方便快速训练,测试的高层接口,对于常见应用来说,使用 Keras 开发效率非常高。但是由于没有底层实现,需要对底层框架进行抽象,运行效率不高,灵活性一般。
  • TensorFlow:2019 年,Google 推出 TensorFlow 2 正式版本,将以动态图优先模式运行,从而避免TensorFlow 1.x 版本的诸多缺陷(符号是编程开发和调试困难等)

目前来看,TensorFlow 拥有完备的解决方案和用户基础,在工业界使用广泛;PyTorch 得益于其精简灵活的接口设计,可以快速设计调试网络模型,在学术界应用广泛。

原文链接: https://www.cnblogs.com/alivinfer/p/12419594.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    机器学习基本概念

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/371436

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月3日 上午10:46
下一篇 2023年3月3日 上午10:47

相关推荐