计算机科学

机器学习图解

孤街醉人 提交于 2020-04-06 07:32:52
机器学习图解 机器学习(Machine Learning)是计算机科学的一个方向。利用统计学的技巧,机器学习算法(Machine Learning Algorithms)能够自动学习并识别数据内的规律。凭着这些规律,算法便能作出高度准确的预测。 每当提到机器学习,大家总是被其中的各种各样的算法和方法搞晕,觉得无从下手。确实,机器学习的各种套路确实不少,但是如果掌握了正确的路径和方法,其实还是有迹可循的。 算法公式挺费神,机器学习太伤人。任何一个刚入门机器学习的人都会被复杂的公式和晦涩难懂的术语吓到。但其实,如果有通俗易懂的图解,理解机器学习的原理就会非常容易。本文介绍根据这些图理解看机器学习算法。 机器学习最大的分支的监督学习和无监督学习,简单说数据已经打好标签的是监督学习,而数据没有标签的是无监督学习。从大的分类上看, 降维 和 聚类 被划在无监督学习, 回归 和 分类 属于监督学习。机器学习常用方法有10种 1) 回归 2) 分类 3) 聚类 4) 降维 5) 集成方法 6) 神经网络与深度学习 7) 迁移学习 8) 强化学习 9) 自然语言处理 10) 词嵌入 机器学习这个主题已经很普遍了,每个人都在谈论它,但很少有人能够透彻地了解它。当前网络上的一些机器学习文章晦涩难懂,理论性太强,或者通篇云里雾里地介绍人工智能、数据科学的魔力以及未来的工作等。 所以呢,本文作者

20194616 第一次作业

孤街浪徒 提交于 2020-03-30 06:48:50
(一)《构建之法——现代软件工程》 第一章 概论 (计算机相关术语整理) 1.1 软件=程序+软件工程 程序在这里指 源程序 ,程序还要对 数据 进行操作,这些操作有时候是 静态 的,有时候是 动态 的。但是光有代码和静态数据还不行,工程师要把它们构建成机器能懂的 可执行代码 。构建不仅仅是cc和link命令,一个复杂的软件不但要有合理的 软件架构(Software Architecture) 、 软件设计与实现(Software Design,Implementation and Debug) 、还要有各种文件和数据来描述各个程序文件之间的 依赖关系 、 编译参数 、 链接参数 等等,这些都是 构建 的过程。 怎么保证软件在修改过程中质量不断提高,至少要维持以前的质量的问题被称为 源代码管理(Source Code Control)又叫 配置管理(Software Configuration Management) 用一系列高质量的工具、流程、文档来保证程序的正确性,这就是 质量保障(Quality Assurance),具体的验证过程叫做 软件测试(Test) 把合适的需求梳理出来,然后逐步展开后续工作被叫做 需求分析(Requirment Analysis) 团体里的新成员要尽快读懂已有的程序,了解程序的设计,这叫 程序理解(Program Conprehension)

浅谈人工智能

北城以北 提交于 2020-03-28 08:27:26
最近大半年以来,开始逐渐养成了阅读、听讲座以及做研究的时候做笔记的习惯,就想着在学习的过程中给自己以及以后的自己留下点东西。这篇文章是在博客园的第一篇随笔,说说关于最近几年非常非常火的人工智能吧。之前,我一直比较好奇,人工智能这个概念的提出好像很久了,但为什么在最近几年里才逐渐被大众所熟知呢。于是我去我去读了一些关于机器学习起源以及发展的文章,这也就导致我在研究生学习开始选择研究方向的时候偏向于这一领域。 现在计算机起源于阿兰·图灵在1936年提出的“图灵机”模型,在图灵的想法中,图灵机是一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。1946年美籍匈牙利科学家冯·诺依曼提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式存储,并确定了存储程序计算机的五大组成部分和基本工作方法,科学家依据冯·诺依曼体系结构制造出了计算机。因此,冯·诺依曼也被称为“计算机之父”。像计算机领域,这种前人在理论上树立了一个框架,后人在此基础上,对这一理论进行扩充细化以及实践应用,最终使计算机走到了家家户户,造福整个社会

软件工程实践2019第一次作业

帅比萌擦擦* 提交于 2020-03-24 07:09:12
回顾——我的初心 Q:当初为什么报计算机科学与技术这个专业? A:科技的发展无时无刻不在造福着我们,在享受计算机发展带给我们福利的同时,也想深入了解前沿技术,为其做出一点自己的贡献。 Q:当初对计算机科学与技术这个专业的期待和想象是什么? A:敲起代码来像钢琴家一样优雅,修起电脑来像专家一样轻松,会开发任何想要开发的软件,会修复任何让人头疼的bug。 Q:当初希望自己是如何投入这个专业的学习的? A:掌握各种基本的程序设计语言,熟知计算机的基本硬件和软件知识,有机会的话可以了解一下时下最热门的计算机衍生学科,如人工智能、大数据等。 Q:曾经做过什么准备,或者立下过什么FLAG吗? A:曾经想要学习计算机专业,但因高考分数不理想,就读于相关的电子商务专业,后努力通过转专业得以学习计算机。 阶段总结与展望——我的简历 姓名 Fei 性别 女 学号 071703323 联系方式 162**** 当前值 真实技能 初步熟悉python语言,web程序设计语言 语言掌握 C、C++、python 技能 学过python,会写一些简单的python程序,学过机器学习,大致了解一些数据的处理算法 预期值 学习 坚持大一大二的学习热情,在学好课内课程的基础上,多找一些关于人工智能、大数据等方面的书籍学习 技能 想要学习java等更多的程序设计语言,学会设计开发一些简单的软件 目前最想学的技术 1

软件第一次作业

强颜欢笑 提交于 2020-03-22 17:59:29
一、用3天左右时间精读教材《现代软件工程—构建之法》第一章,整理本章中出现的计算机专业术语 第一章 概论 1.1 软件=程序+软件工程 1、C语言实现 二叉树的遍历算法 。 2、程序,在这里指的就是源程序,就是一行行的代码,构建不仅仅是cc和link命令。一个复杂的软件不但要有合理的 软件架构,软件设计与实现 ,还要有各种的文件和数据来描述各个程序文件之间的依赖关系,编译参数等,这些都是软件软件 构建 的过程,有些程序还有32位系统,64位版本等,这是 源代码管理 ,也叫 配置管理。 具体的验证过程叫做 软件测试。 3、软件团队要从 需求分析 开始,把合适的需求梳理出来,然后逐步展开后续工作。 4、软件团队要从 需求分析 开始,把合适的需求梳理出来,然后逐步开展后续工作,如设计软件架构,实现算法,测试,到最后发布软件尽快读懂已有程序,了解程序的设计,这叫 程序理解。 给软件打补丁,维护众多的服务,团队的新老成员一起修复各种问题,这叫 软件维护 或者 服务运营, 这一过程就是 软件的生命周期 ,在这一周期中,有人得负责 软件项目的管理。 5、一个好的软件,即使功能和同类软件区别不大,但却会让人感觉到非常好用,这就是软件的 用户体验 。软件还要处理不同语言、不同地区的用户对界面和功能的不同需求,这叫做软件的 国际化和本地化 。 6、广义上的软件工程也包括用户体验、用户界面设计等。所以

通读《现代软件工程—构建之法》后的疑惑

烂漫一生 提交于 2020-03-17 17:16:13
作业说明: 课程名称 : 2016级计算机科学与工程学院软件工程(西北师范大学) 作业要求 : 实验一 软件工程准备 三个问题: 问题1 :在构建之法P15,提到软件工程的目标是——创造“足够好”的软件。那么紧接着的一个问题就是——什么样的软件是“足够好”的或者说如何定义“足够好”的边界?例如:现在大学所使用的教务管理系统,该系统可以让学校的教学管理更加有条理,教务管理人员和学生能够更加便捷。但是每到选课的时候,就会出现很多如:验证码收不到、网站打不开等一系列问题。那么该系统是不是一个“足够好”的软件呢? 问题2 :在第五章作者提出了软件开发的一些流程。由于是粗略的看了一下,对于每一种开发流程的优缺点把握的不是很好。但是我想知道的是,当一个全新的项目开始时,要如何选择一种模式作为团队模式?一个团队的模式是固定的还是可以根据一些项目有所变动? 问题3 :读完第六章敏捷流程后,感觉到敏捷流程确实和之前提到的软件开发流程不一样。软件工程这门课更多的是注重实践,对于初学软件工程的我们来说,敏捷流程是否适合我们学习过程中团队的开发模式? 来源: https://www.cnblogs.com/yangfy2019/p/10505364.html

机器学习岗位面试总结:简历应该关注的5个重点

£可爱£侵袭症+ 提交于 2020-03-16 15:06:43
机器学习简历的一些小技巧 如今的公司很难找到优秀的机器学习人才。当然,任何特定技能的要求都取决于机器学习项目的用途和要求,但是您的机器学习履历中必须具备的某些技能在各种项目要求中是一致的。 通常,公司希望面试者具备丰富的机器学习技能,理论和编码能力,以便在需要时能够跨部门参与机器学习项目。 该领域的专家不仅需要具有扎实的机器学习算法水平,了解什么时候该应用什么算法,还需要掌握如何集成和接口。所需的核心技能是专门的,要求具有良好的数学理解,分析思维和解决问题的能力。尽管每个项目文件要求的特定技能各不相同,但对于所有角色而言,核心的机器学习技能都是不变的。 简历上必须出现的技能 概率与统计 概率论是大多数机器学习算法的主要内容。熟悉概率可以使您能够处理数据的不确定性。如果您从事与模型构建和评估有关的机器学习工作,掌握诸如Python,高斯混合模型和隐马尔可夫模型等概率理论,是非常必要的。 与概率论密切相关的是数据统计。 它提供了构建和验证模型所需的测度,分布和分析方法。 它还提供了用于创建模型和检验假设的工具和技术。 它们共同构成了机器学习模型的框架。这是制作机器学习简历时要考虑的第一件事。 计算机科学和数据结构 机器学习使用大量数据集,因此必须掌握计算机科学和底层体系结构的基础知识,还必须具备大数据分析和复杂数据结构方面的专业知识。 因此

20194652魏一人的博客初体验

拈花ヽ惹草 提交于 2020-03-15 17:50:18
第一章 概论   1.1 软件=程序+软件工程     (1) 采用的语言或工具 :Excel、c/c++、VB、Unix Shell、Emacs、Powershell/VBScript、JavaScript、Perl、Python     (2) 一个复杂软件的构建 :合理的软件架构,软件设计与实现,各种文件和数据来描述程序文件间的依赖关系,编译参数,链接参数等。     (3) 推论 :软件=程序+软件工程 扩展推论 :软件企业=软件+商业模式     (4) 软件开发的不同阶段 :玩具阶段——>业余爱好阶段——>探索阶段——>成熟的产业阶段   1.2 软件工程是什么     (1) 定义   软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护的过程。     (2) 领域       软件需求分析,软件设计,软件构建,软件测试和软件维护     (3) 关联的学科       计算机科学,计算机工程,管理学,数学 ,项目管理学,质量管理学,软件人体工学,系统工程,工业设计和用户体验设计     (4) 软件的特殊性       复杂性,不可见性,易变性,服从性,非连续性     (5) 非本质,临时的特性 有许多不同的程序设计语言、软件工具和软件开发平台 存在雨多不同的软件开发流程 软件团队寻才许多不同的角色 软件既可以存储在磁带上,也可以存储在CD

软件工程(一)

半腔热情 提交于 2020-03-12 13:33:29
1.什么是软件? 答:软件不仅仅是程序,还需有非常重要的文档,书写文档不简单,里面包含可行性分析,需求分析,数据库设计,详细设计,编码,测试,维护,里面包含的内容很多,也就是你的程序来自于你的逻辑思想,这些逻辑必须正确可行的物理模型。 软件=程序+数据+文档 2.软件工程的定义?提示:软件工程是一门学科,是一个专业,是一个课程,从这三大块展开 答:《计算机科学技术百科全书》:软件工程是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。 其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 IEEE给出的软件工程定义是:将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件 现阶段比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 3.软件工程的生存周期? 软件生存周期是从设计软件产品开始到产品不能使用为止的时间周期。通常包括需求阶段、设计阶段、实现阶段、测试阶段、安装和验收阶段、操作和维护阶段。 4.软件的特性有哪些? 软件特性:

软件工程第一次作业——博客初体验——张娜

有些话、适合烂在心里 提交于 2020-03-12 06:55:33
第一章概论 1.1 软件=程序+软件工程 1.1.1 软件初理解 程序=数据结构+算法。 程序 :在这里指的是源程序,就是一行行的代码。它们是建立在数据结构上的一些算法。程序还要对数据进行操作,这此数据有些是静态的(例如软件的图标、提示信息),有些是动态的(例如程序生成的随机数字、程序通过网络下载的数据、用户的文字或语音输人等)。 软件构建的过程: 构建不仅仅是cc和ink命令,一个复杂的软件不但要有合理的软件架构(Software Architecture )、软件设计与实现(Software Design, Implementation and Debug),还要有各种文件和数据来描述各个程序文件之间的依赖关系、编译参数、链接参数,等等。。 源代码管理( Source Code Control ) 的问题 :也叫配置管理( Software Configuration Management), 例如有些程序要配置不同的界面,运行在中文,英文或其他语言的操作系统上;有些程序还有32位版本、64 位版本等。 质量保障( Quality Assurance) :一系列的工具、流程和文档来保证程序的正确性,这些工具(也是软件)、流程应该达到很高的质量,才能保证开发出来的软件的质量。 软件测试(Test ) : 具体的验证过程为软件测试。 软件的发布流程: 软件团队要从需求分析(