硬核王同学 发表于 2024-7-10 11:55

一起读《机器学习算法与实现 —— Python编程与应用实例》- 第1章 绪论

<div class='showpostmsg'><h1><strong>本书介绍</strong></h1>

<p>&nbsp;</p>

<p>本书的名称是《机器学习算法与实现&mdash;&mdash;Python编程与应用实例》,作者布树辉是西北工业大学的教授,我浏览了他的gitee,里面都有很全的自学机器学习及编程的资料,大家可以去看看:<a href="https://gitee.com/pi-lab" target="_blank">https://gitee.com/pi-lab</a></p>

<p>&nbsp;</p>

<p>本书总共有11章,可以分为3大块,第一部分是Python语言;第二部分是机器学习的基础算法及实现;第三部分为深度学习及目标检测。</p>

<p>&nbsp;</p>

<p>从第一章绪论就可以看出来,本书实践性很强,可以边做实验边理解书中的概念,而且本书还配有视频教程和电子档的资料,b站就能免费观看!</p>

<p>&nbsp;</p>

<p>最后,本书质量非常不错,彩版印刷,看起来相当舒服,真心建议大家买一本回去仔细学习!</p>

<p>&nbsp;</p>

<h1>第一章介绍</h1>

<p>&nbsp;</p>

<p>第一章介绍了一些机器学习的来历、基本的专业术语和机器学习的类型,还有机器学习在现实生活中的应用,以及实现机器学习应用的具体步骤,另外又讲了一下评估机器学习模型好坏的方法和学习机器学习的方法。</p>

<p>&nbsp;</p>

<p>总的来说,第一章主要是向还不熟悉机器学习的同学介绍和认识机器学习,并且扩展讲了一下现实生活中对机器学习的应用步骤,以及告诉我们,新手该如何正确学习机器学习,和学习机器学习正确的方法。</p>

<p>&nbsp;</p>

<p>下面我就摘取一些我认为很有价值的东西,分享给大家:</p>

<p>&nbsp;</p>

<p>人类想要构建智能机器,让机器具备和人一样的学习能力,就需要让机器自己具备智能。而使机器自己具备智能这样的学习理论和方法就是重要的研究课题。我们正好可以让机器模仿人类的学习方式实现&rdquo;机器学习&ldquo;:输入、整合和输出。</p>

<p>&nbsp;</p>

<p>实际上人类学习的定义就是:人类的学习是根据过往的知识或经验,对一类问题形成某种认识或总结出一定的规律,然后利用这些知识对新问题进行判断、处理的过程。</p>

<p>&nbsp;</p>

<p>而真正的现实生活中,具有海量的信息,挖掘其所蕴含的知识,突破人类认知能力的瓶颈,是人类目前面临的主要挑战之一,所以&ldquo;机器学习&rdquo;就是解决这一理念的产物。</p>

<p>&nbsp;</p>

<p>机器学习的定义如下:机器学习是一类算法的总称,这些算法能够从大量历史数据中挖掘出隐含的规律,并用于分类、回归和聚类。</p>

<p>&nbsp;</p>

<p>机器学习更简单和形象的定义是:寻找从输入样本数据到期望输出结果之间的映射函数。注意,机器学习的目标是使学习得到的函数很好地适用于&ldquo;新样本&rdquo;,而不是仅适用于训练样本。</p>

<p>&nbsp;</p>

<p>机器学习的基本思路如下:1.收集并整理数据;2.将显示问题抽象成数学模型;3.利用机器学习方法求解数学问题;4.评估求解得到的数学模型。</p>

<p>无论使用什么算法和数据,机器学习的应用都包含上述几个步骤。</p>

<p>&nbsp;</p>

<h1>一、机器学习的发展历程</h1>

<p>从20世纪50年代至今,人工智能的发展经历了&ldquo;推理期&rdquo;&ldquo;知识期&rdquo;和&ldquo;机器学习时期&rdquo;</p>

<p>&nbsp;</p>

<p>机器学习时期大致也分为三个阶段。20世纪80年代初,连接主义较为流行。20世纪90年代,统计学习方法占据主流舞台。进入21世纪,深度神经网络被提出,连接主义思想又受到大家关注。</p>

<p>&nbsp;</p>

<p>具体机器学习的发展历程可以百度搜索,我们主要为了学习技术,对于历史背景在学习技术的过程中再详细了解。</p>

<p>&nbsp;</p>

<h1>二、机器学习的基本术语</h1>

<p>本章及以下内容不必强求理解,只需记住这些名词和概念即可,后续章节中深入讲解设计的概念和内涵。</p>

<p>&nbsp;</p>

<p>1.特征:特征是被观测目标的一个独立可观测的属性或特点,即某个东西可直接被观察到的属性。很多个特征可以定义出一个标签,这个标签是无法直接观察到或难以被观察到的属性,比如可以通过一个草莓的大小、颜色、成熟度等等的特征来判断出这个草莓味道是否甜的标签。</p>

<p>&nbsp;</p>

<p>2.样本:样本是数据的特定实例,分为两类,有标签样本和无标签样本。无标签样本不包含标签,需要通过算法根据数据在特征空间中的分布关系自动找到样本之间的关系。样本的集合构成数据集,在不同的阶段对算法模型进行训练、测试和验证,数据集也正好被分为训练集、测试集、验证集。</p>

<p>&nbsp;</p>

<p>3.模型:模型定义特征与标签之间的关系,一般可以是为一个由参数定义的函数或逻辑操作的集合。模型的生命周期包括两个阶段:1.训练阶段,创建或学习模型。2.推理阶段,将训练后的模型应用于无标签样本,对其做出有用的预测。</p>

<p>&nbsp;</p>

<p>4.回归、分类与聚类:机器学习的基本应用是回归、分类和聚类。回归和分类都属于监督学习,其主要特点是根据输入的特征,分析并得到数值或类别。回归问题常用于预测一个连续值,如预测房价、未来气温等。分类问题的目的是将事物打上标签,结果通常为离散值。聚类问题属于无监督学习,用于在数据中寻找隐藏的模式或分组。</p>

<p>&nbsp;</p>

<p>5.泛化与过拟合:通过数据学习得到模型的过程就是学习,也称训练。先根据训练数据集构建一个模型,然后将该模型用于此前未见过的新数据的过程,被称为模型的泛化。构建一个对现有信息量来说过于复杂的模型,如果该模型在拟合训练数据集时表现得非常好,但在测试数据集上表现非常差,就说明模型出现了过拟合。与之相反,模型如果过于简单,就可能无法掌握数据的全部内容及数据中的变化,机器学习模型甚至在训练集上表现都很差,不能拟合复杂的数据,这种成为欠拟合。只有在训练集和测试机的精度都较高的情况下,才认为模型对数据拟合的成都刚刚好,模型的泛化表现出色,这才是最期望的模型。</p>

<p>&nbsp;</p>

<h1>三、机器学习的基本分类</h1>

<p>1.监督学习:监督学习是指在训练机器学习模型时,使用有标签的训练样本数据。首先建立数据样本特征和已知结果之间的练习来求解最优模型参数,然后同各国模型和求解的的模型参数对新数据进行结果预测。监督学习通常用于分类和回归问题。监督学习的难点是,获取具有目标值的标签样本数据的成本较高,而成本高的原因是这些训练集要一路来人工进行标注。</p>

<p>&nbsp;</p>

<p>2.无监督学习:根据类别位置(未被标记)的训练样本解决模式识别中的各种问题,称为无监督学习。无监督学习与监督学习的区别是选取的样本数据无需标签信息,而只需分析这些数据的内在规律。此外无监督学习也适用于降维。无监督学习的优点是,数据不需要进行人工标注,且数据获取成本低。</p>

<p>&nbsp;</p>

<p>3.半监督学习:半监督学习是监督学习和无监督学习相结合的一种学习方法,半监督学习方法可以结合分类、回归和聚类,只需少量有带标签的样本和和大量无标签的样本即可获得较好的应用效果。</p>

<p>&nbsp;</p>

<p>4.深度学习:根据人工神经网络的层数或者机器学习方法的非线性处理深度,可以将机器学习算法分为浅层学习算法和深度学习算法。浅层学习算法的典层代表是感知机,深度神经网络主要是指处理层数较多的神经网络。</p>

<p>&nbsp;</p>

<p>5.强化学习:强化学习又称再励学习、评价学习或增强学习,用于描述和解决智能体与环境交互的学习策略,以达成回报最大化或者实现特定目标的问题。</p>

<p>&nbsp;</p>

<p>6.总结:机器学习与人工智能:人工智能是一种概念,主要目标是使机器能够胜任通常人类智能才能完成的复杂工作。机器学习是一种实现人工智能的方法,是一种实现机器学习的技术,也是当前最热门的机器学习方法。下图展示了机器学习和人工智能之间的关系。</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<p>&nbsp;</p>

<h1>四、机器学习的应用</h1>

<p>以机器学习为代表的各种智能方法不仅应用于图像识别、语音识别、自然语言处理等传统领域,在其他方向也有其重要的作用,下面几种是比较常见且重要的应用:</p>

<p>1.图像识别与处理</p>

<p>2.语音识别与自然语言处理</p>

<p>3.环境感知与智能决策</p>

<p>4.融合物理信息的工程设计</p>

<p>&nbsp;</p>

<h1>五、机器学习应用的步骤</h1>

<p>使用机器学习解决实际问题时,遵循的基本流程如下:</p>

<ul start="1">
        <li data-list="bullet">
        <p>选择合适的模型。这通常需要视实际问题而定,即要针对不同的问题和任务选取恰当的模型,而模型就是一组函数的集合。</p>
        </li>
        <li data-list="bullet">
        <p>判断函数的好坏。这需要确定一个衡量标准,即通常所说的损失函数,损失函数的确定也需要视具体问题而定,如回归问题一般采用欧式距离,分类问题一般采用交叉熵代价函数。</p>
        </li>
        <li data-list="bullet">
        <p>找出&ldquo;最好&rdquo;的函数的模型参数。如何从高维参数空间最快地找出最优的那组参数是最大的难点。常用的方法有梯度下降法、最小二乘法等。</p>
        </li>
        <li data-list="bullet">
        <p>学习得到&ldquo;最好&rdquo;的函数的参数后,需要在新样本上进行测试,只有在新样本上表现很好时,才算是一个最优模型。</p>
        </li>
</ul>

<p>&nbsp;</p>

<p>机器学习的流程本质上是数据准备、数据分析、数据处理和结果反馈的过程,如下列排序所示:</p>

<p>1.应用场景分析</p>

<p>2.数据处理</p>

<p>3.特征工程</p>

<p>4.算法模型训练与评估</p>

<p>5.应用服务</p>

<p>&nbsp;</p>

<h1>六、机器学习的评估方法</h1>

<p>当模型训练完成时,需要对模型进行跟踪与评估。为了让得到的模型适用于新样本,即使模型获得一个最期望的模型。为了充分验证机器学习模型的性能和泛化能力,需要选择与问题匹配的评估方法,才能发现模型选择或训练过程中的问题,进而迭代地优化模型。下面是两种常见的评估方法:</p>

<p>1.数据集划分方法:数据集一般需要分割为训练集、测试集和验证集,划分方法如下:1.留出法2.交叉验证法3.自助法</p>

<p>2.性能度量:性能度量是衡量模型泛化能力的数值评价标准,反映了所求解模型的性能。</p>

<p>&nbsp;</p>

<h1>七、如何学习机器学习</h1>

<p>主要有两个中心思想:</p>

<p>1.由浅入深:机器学习综合了诸多学科知识,应由浅入深,循序渐进的方法学习机器学习,并基于Python应用建立感性认识,在学和做的过程中不断强化理解机器学习的深度与广度。</p>

<p>2.形成于思:机器学习是一门实践性很强的学科,需要理论与实践相结合,不仅要理解还要实践,学习机器学习时应先快速建立感性认识去解决一些实际问题,并在解决问题的过程中加深理论、算法、编程、验证等方面的理解。</p>

<p>&nbsp;</p>

<h1>总结</h1>

<p>最后,攀登机器学习这座&ldquo;高山&rdquo;,不必强求一步就学会,而在做与学的过程中不断强化感性认识,进而牵引理论学习。所以对于机器学习这些多而复杂的概念,可以先认识了解,在实验中学习和加深这些概念的印象即可。后面几章就是在实践中进行学习,希望大家可以和我一起跟着布树辉老师做实验,从而真正掌握机器学习这门学科!!!</p>

<p>&nbsp;</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

Jacktang 发表于 2024-7-13 08:53

<p>好吧,循序渐进的方法学习机器学习,并基于Python应用建立感性认识,这个也是启发啊</p>
页: [1]
查看完整版本: 一起读《机器学习算法与实现 —— Python编程与应用实例》- 第1章 绪论