启动ML时的资源

Machine Learning in a week:https://medium.com/learning-new-stuff/machine-learning-in-a-week-a0da25d59850 GitHub, Search: ImageNet: https://github.com/search?utf8=%E2%9C%93&q=ImageNet&type= GitHub:https://github.com/Kidel/Deep-Learning-CNN-for-Image-Recognition  

READ MORE

机器学习算法一览

原文出处:http://blog.csdn.net/han_xiaoyang/article/details/50469334 机器学习算法一览 2016-01-12 大数据文摘   作者:寒小阳 摘自:http://blog.csdn.net/han_xiaoyang/article/details/50469334   大数据文摘愿意为读者打造高质量【机器学习讨论群】,措施如下 (1)群内定期组织分享 (2)确保群内分享者和学习者数量适合,有分享能力者不限名额,学习者数量少于分享者,按申请顺序排序。 点击文末“阅读原文”填表入群   引言   提起笔来写这篇博客,突然有点愧疚和尴尬。愧疚的是,工作杂事多,加之懒癌严重,导致这个系列一直没有更新,向关注该系列的同学们道个歉。尴尬的是,按理说,机器学习介绍与算法一览应该放在最前面写,详细的应用建议应该在讲完机器学习常用算法之后写,突然莫名奇妙在中间插播这么一篇,好像有点打乱主线。 老话说『亡羊补牢,为时未晚』,前面开头忘讲的东西,咱在这块儿补上。我们先带着大家过一遍传统机器学习算法,基本思想和用途。把问题解决思路和方法应用建议提前到这里的想法也很简单,希望能提前给大家一些小建议,对于某些容易出错的地方也先给大家打个预防针,这样在理解后续相应机器学习算法之后,使用起来也有一定的章法。   2.机器学习算法简述   按照不同的分类标准,可以把机器学习的算法做不同的分类。   2.1 从机器学习问题角度分类   我们先从机器学习问题本身分类的角度来看,我们可以分成下列类型的算法: 监督学习算法   机器学习中有一大部分的问题属于『监督学习』的范畴,简单口语化地说明,这类问题中,给定的训练样本中,每个样本的输入x都对应一个确定的结果y,我们需要训练出一个模型(数学上看是一个x→y的映射关系f),在未知的样本x′给定后,我们能对结果y′做出预测。     这里的预测结果如果是离散值(很多时候是类别类型,比如邮件分类问题中的垃圾邮件/普通邮件,比如用户会/不会购买某商品),那么我们把它叫做分类问题(classification problem);如果预测结果是连续值(比如房价,股票价格等等),那么我们把它叫做回归问题(regression problem)。   有一系列的机器学习算法是用以解决监督学习问题的,比如最经典的用于分类问题的朴素贝叶斯、逻辑回归、支持向量机等等;比如说用于回归问题的线性回归等等。   无监督学习   有另外一类问题,给我们的样本并没有给出『标签/标准答案』,就是一系列的样本。而我们需要做的事情是,在一些样本中抽取出通用的规则。这叫做『无监督学习』。包括关联规则和聚类算法在内的一系列机器学习算法都属于这个范畴。   半监督学习   这类问题给出的训练数据,有一部分有标签,有一部分没有标签。我们想学习出数据组织结构的同时,也能做相应的预测。此类问题相对应的机器学习算法有自训练(Self-Training)、直推学习(Transductive Learning)、生成式模型(Generative Model)等。   总体说来,最常见是前两类问题,而对应前两类问题的一些机器学习算法如下:       2.2 从算法的功能角度分类   我们也可以从算法的共性(比如功能,运作方式)角度对机器学习算法分类。下面我们根据算法的共性去对它们归个类。不过需要注意的是,我们下面的归类方法可能对分类和回归有比较强的倾向性,而这两类问题也是最常遇到的。   2.2.1 回归算法(Regression Algorithms)   回归算法是一种通过最小化预测值与实际结果值之间的差距,而得到输入特征之间的最佳组合方式的一类算法。对于连续值预测有线性回归等,而对于离散值/类别预测,我们也可以把逻辑回归等也视作回归算法的一种,常见的回归算法如下:   Ordinary Least Squares Regression (OLSR) Linear Regression Logistic Regression Stepwise Regression Locally Estimated Scatterplot Smoothing (LOESS) Multivariate Adaptive Regression Splines (MARS)

READ MORE

基于Keras的自动驾驶技术的车轮转向角度的可视化

This post is about understanding how a self driving deep learning network decides to steer the wheel.   NVIDIA published a very interesting paper(https://arxiv.org/pdf/1604.07316.pdf), that describes how a deep learning network can be trained to steer a wheel, given a 200x66 RGB image from the front of a car. This repository(https://github.com/SullyChen/Nvidia-Autopilot-TensorFlow) shared a Tensorflow implementation of the network described in the paper, and (thankfully!) a dataset of image / steering angles collected from a human driving a car. The dataset is quite small, and there are much larger datasets available like in the udacity challenge.

READ MORE

机器学习知识体系

随着 2016 年 Alpha Go 在围棋击败李世石,2017 年初卡内基梅隆大学人工智能系统 Libratus 在长达20天的鏖战中,打败 4 名世界顶级德州扑克玩家,这标志着人工智能技术又达到了一个新的高峰。 人工智能已经不再是在各大公司幕后提供各种智能推荐、语音识别算法的工具,它已经慢慢走向台前进入到平常百姓的视野之中。 曾经有人描述人工智能就向一列缓缓开向人们的火车,一开始非常遥远而且看起来非常缓慢,它慢慢接近,直到人们清楚看到它的时候,它已经呼啸而过,把人远远抛在身后。现在似乎就是人们可以远远看到人工智能的时候,它已经发展数十年,但直到最近才引起广泛注意,随着大数据的积累、算法的改进、硬件的提升,人工智能可以在很多细分的领域成为专家,辅助人类甚至超过人类。 接触一个领域的第一步是尽快的了解全貌并且搭建出相应的知识体系。大致提纲如下(后续不断补充):   1 - 数学 线性代数、微积分 在整个机器学习过程中涉及大量矩阵运算和微积分导数的概念,因此建议初学者至少要有较为扎实的数学基础,对矩阵和微积分的概念了解比较清楚。否则在一些公式推导过程中会遇到较大障碍,而不断反复回来复习数学知识。 2 - 编程语言 2 - 编程语言 Python/R/Java/Matlab Python 已经成为机器学习的第一语言,至于为什么知乎(https://www.zhihu.com/question/30105838?sort=created)中有非常不错的解释。众多机器学习的框架都支持 Python API,所以学习机器学习,Python 语言语法估计是绕不过去。 3 - Supervise learning 3 - Supervise learning Linear regression Logistic regression Neural network SVM 监督学习指的是人们给机器一大堆标记好的数据,比如一大堆照片,标记出哪些是猫的照片,哪些不是,然后让机器自己学习归纳出算法,可以判断出其他照片是否是猫。目前这个领域算法代表:Linear regression, Logistic regression, Neural network, SVM等等。 4 - Unsupervise learning K-means PCA Anomaly detection 非监督学习指的就是人们给机器一大堆没有标记的数据,让机器可以对数据进行分类、检测异常等。 5 - Special topic Recommend system Large scale machine learning application 一些特殊算法,例如推荐系统。常用于购物网站,可以根据你的过往购物或评分情况,来向你推荐商品。 6 - Advice on machine learning

READ MORE

ROS进二阶学习笔记(10) -- rospy.Publisher() 之 queue_size

ROS进二阶学习笔记(10) – rospy.Publisher() 之 queue_size ROS进二阶学习笔记(10) – rospy.Publisher() 之 queue_size ref link =============== queue_size: publish() behavior and queuing publish() in rospy is synchronous by default (for backward compatibility reasons) which means that the invocation is blocking until: the messages has been serialized into a buffer and that buffer has been written to the transport of every current subscriber If any of the connections has connectivity problems that might lead to publish() blocking for an indefinite amount of time. This is a common problem when subscribing to topics via a wireless connection.

READ MORE

ROS进二阶学习笔记(9)-- 关于Overlay:重名 package 在不同catkin workspace 中,

ROS进二阶学习笔记(9)– 关于Overlay:重名 package 在不同catkin workspace 中, 要把ROS玩转,必须把 catkin 玩转。 http://wiki.ros.org/catkin/Tutorials 其中,Overlay问题是 重名 package 在不同catkin workspace 中时,如何处理他们的关系。 一个检查的命令: echo $ROS_PACKAGE_PATH 可检查 overlay 用来设置path的命令们: $ source /opt/ros/indigo/setup.bash $ source ~/catkin_ws/devel/setup.bash $ source ~/catkin_ws2/devel/setup.bash 可得到: $ echo $ROS_PACKAGE_PATH /root/catkin_ws2/src:/root/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks ========== 正片开始: ========== Overlaying with catkin workspaces ref: http://wiki.ros.org/catkin/Tutorials/workspace_overlaying [Overview:]

READ MORE

ROS进二阶学习笔记(8)-- 关于rospy 和 parameters

ROS进二阶学习笔记(8)– 关于rospy 和 parameters ref: http://wiki.ros.org/Parameter Server – 总领阐述parameter的一些概念。比如namespace http://wiki.ros.org/rospy/Overview/Parameter Server – 如何使用Python操作params http://wiki.ros.org/rospy_tutorials/Tutorials/Parameters – 如何使用Python操作paramshttp://wiki.ros.org/roslaunch/XML – 使用launchfile操作 paramhttp://wiki.ros.org/roslaunch/XML/param – 使用launchfile 操作paramhttp://wiki.ros.org/rosparam – ROS Tool之rosparam用法 ros进阶学习笔记(24)– 关于rospy 和 parameters 进行rospy编程时,需要用到parameter,但如何灵活用好它,还需进一步学习总结。 节点程序如何声明parameter,是global, relative or private? 声明完了如何通过外部为rosparam赋值?rosrun命令行怎么赋?launch文件怎么赋?yaml怎么赋? 参数Parameters - 概念 一个简单的 python 代码 - 使用params rosparam工具 arguments 赋值 mynode.py http://answers.ros.org/question/64552/how-to-pass-arguments-to-python-node/ 1. #!/usr/bin/env python 2. import sys 3. class MyNodeClass(): 4. #Setup the node: 5. def __init__(self): 6. ... 7. rospy.set_param('~n_naviLoop', sys.argv[1]) 8. rospy.set_param('~layoverSecs', sys.argv[2]) 9. print rospy.get_param("~n_naviLoop") 10. print rospy.get_param("~layoverSecs") 11. 12. if __name__ == '__main__': 13.

READ MORE

ROS进二阶学习笔记(7) -- Metapackage

ROS进二阶学习笔记(7) – Metapackage ROS进阶学习笔记(24) – Metapackage Metapackage 是ROS File System 概念层中的一个概念: 2. Create and Configure a Metapackage: url: http://wiki.ros.org/catkin/[package](https://so.csdn.net/so/search?q=package&spm=1001.2101.3001.7020).xml#Metapackages Usually the parent folder, named like the meta package or just the repo name, contains no package.xml but all packages and also the folder again named like the meta package, containing the package.xml with the meta-declaration. ref: http://wiki.ros.org/catkin/migrating_from_rosbuild#Package_Layout_in_Workspace

READ MORE

Geany 编辑器打开 高亮所选单词 功能

Geany 编辑器打开 高亮所选单词 功能 Geany 编辑器打开 高亮所选单词 功能 Finally, I set the Geany as the alternative for Notepad++ in Ubuntu ref: http://plugins.geany.org/addons.html ===============

READ MORE