首页 > 其他分享 >机器学习--要学点什么

机器学习--要学点什么

时间:2023-01-01 16:23:15浏览次数:27  
标签:机器 -- 编程 学习 python 算法 要学点 深度

前言

可以说掌握了机器学习,你就具备了与机器对话,充分利用机器为人类服务的能力。
在人工智能时代,这将成为一项必备技能,就好比十年前你是编程大牛,二十年前你英语超好一样。因此,无论你是什么专业的学生,学一点机器学习的知识绝对只有好处,没有坏处.

但是由于目前学习机器学习是为了准备美赛,所以我并不打算死磕其中的原理,而是有的放矢的学习,目前阶段的学习结果应该是能够对一些可以使用机器学习的问题形成思路并且通过查阅可以用代码来实现

由于我的常用语言为java,python,目前正在学习R语言,所以在思考过后我选择了python作为现阶段机器学习的语言,一方面是脚本语言能够尽快捡起来,另一方面python的生态良好api充足,代码实现充分.

难点:

数学难。

传统的机器学习是一门综合学科,对线性代数、概率统计等多种数学知识都有一定的要求,一上来遍布学术黑话怎能不让人退避三舍。不可否认,作为一个交叉学科,深度学习离不开很多的前置预备知识,比如微积分、线性代数、统计学、计算机科学等等。由于我只是大一的新生只开了高等代数一门课,所以我需要掌握少且必要的知识.所以之

编程难。

我们得承认机器学习是门十分强调动手实战的学科。对很多编程基础不好,或者压根没学过编程的而言,机器学习貌似就是个天方夜谭。但其实编程也不过是门语言,不需要那么专业的情况下,只要教得合适,听懂看懂能够简单上手没有那么难。更何况如今python语言的发展已经到了傻瓜阶段,随便一个人只要会点儿ABC基本上都能学会。

算法难。

曾经神秘的不得了的算法,如今已经被工业化制造,打包成成熟的API函数,可以方便地调用。好比汽车,你根本不需要知道内部的构造,买回来能开就成。如果还停留在只看学术论文或者传统教材的阶段,算法的确很难。多数都不是普通人的人话能够理解的。但是再难的算法,其实也是人设计的,反映的是人的思想,也是能用大白话讲明白的。这也十分适合我这种只是为了使用而学习的人

机器学习的前世今生

前世

image

在机器学习之前,概率统计,控制论,图论是计算机科学中的数学基础,也是实现计算的基础。

深度学习,强化学习和知识图谱这三派是主流的机器学习方向,分别被称为"联结主义","行为主义"和"符号主义"而我们主要选取深度学习来研究.这也是诸多优化算法等的来源.也权当复习.

今生

概率统计这一门被称为上帝的学问的学科经过这么多年的发展,分支众多,包括最近邻(kNN)、决策树、随机森林、条件随机场、Boosting、SVM、隐马尔科夫模型(HMM)、Bayes方法、神经网络。而神经网络起步晚,发展也缓慢,但是到深度学习概念的产生才得到了重视。

那么经过不断的发展深度学习这一派可是执天下机器学习之牛耳啊。
image

当然如今的机器学习世界,除了深度学习一派人丁兴旺,强化学习、知识图谱,还有七七八八不怎么知名的“门派”也没有闲着,互相借鉴其他“门派”的思想来丰富自己的根基

笔者,(非专业的CS学生),认为的机器学习大致等同于深度学习中的神经网络训练。或许在日后的学习中更加的细致的了解了两者的不同之后会在本文中标注。

所以后续以机器学习为标签的内容暂且涵盖或者等同于深度学习。但虽然笔者研究的模型属于深度学习,但是其中的算法思想却不受限于此,其他的机器学习的内容同样适用。

美赛O奖论文阅后有感

一些经典的算法经过适合的idea修改之后的竞争力并不弱于所谓的复杂和热门算法

概率统计衍生出来的经典算法,虽然看似有些过时,不如神经网络实力强大,但是RNN本质上来说就是HMM模型的高维扩展版,GNN与条件随机场、随机森林在某些方面也有异曲同工之妙,AutoEncoder与SVM的核心都是降维。不仅如此,还有一种趋势就是新的网络越来越多的借鉴老算法的思想,比如Bayes方法+NN衍生出来的BNN。

后续打算

美赛前学完机器深度学习。
无监督学习的思想和内容比较深,需要多看最近的论文,在自己有理解之后开始学习。
强化学习,知识图谱内容比较独立,如果后续没有需要可能就此搁置。

标签:机器,--,编程,学习,python,算法,要学点,深度
From: https://www.cnblogs.com/epictus/p/17018214.html

相关文章

  • 我的第一个html文件
    <!DOCTYPEhtml><!--!DOCTYPE表明此文件为h5版本--><htmllang="en"><head><metacharset="UTF-8"><!--网页的编码--><title>这是我第一个html</title>......
  • spring boot——spring boot的基本配置——关闭某个特定的自动配置
                  ===========================================================================             ......
  • 统计各选项选择数
     问题:某公司调查表结果,有单选和多选,需要统计出每个选项的次数函数公式解决:=COUNTIF(T$2:T$9,"*"&$H11&"*")  Countif第二个参数前后都加通配符*,表示条件为“......
  • C++ Primer第三章知识点(想起来啥记啥版)
    命名空间#include<iostream>//using声明,当我们使用名字cin时,从命名空间std中获取它usingstd::cin;intmain(){inti;cin>>i;//正确:cin和st......
  • ShardingJDBC
    分库分表概念垂直角度(表结构不一样,大结构分多个小结构)垂直分表:将一个表字段拆分多个表,每个表存储部分字段好处:避免IO时锁表的次数,分离热点字段和非热点字段,避免......
  • winform 登录
      最近一直在搞winform,对于我一个经常搞B/S的开发者来说,还是学一下的。不得不说这个winform的原始控件时真的丑,对于我一个用惯了前端框架的人来说时真的难受。我拖拽了......
  • Flutter 陈航 11-生命周期 WidgetsBindingObserver
    本文地址目录目录目录11|提到生命周期,我们是在说什么?State生命周期生命周期流程图生命周期的三个阶段创建更新销毁注意!!!常见场景的生命周期生命周期方法总结测试代码S......
  • maven基础
    maven1.介绍与下载1.1介绍Maven是Apache软件基金会组织维护的一款专门为Java项目提供构建和依赖管理支持的工具1.1.1构建Java项目开发过程中,构建指的是使用......
  • grafana嵌套
    一、匿名访问修改配置文件conf/defaults.ini[auth.anonymous]#设置为true即可匿名访问,不用登陆就可以直接访问urlenabled=true二、嵌套允许修改配置文件conf/defaul......
  • lock_guard和unique_lock
    lock_guard和unique_lock互斥锁std::mutex是c++基础的互斥锁为了避免有些场景下忘记unlock导致的死锁,c++11引入了std::unique_lock和std::lock_guard两种数据结构。实现......