人工智能基础(高中版)教材补充和资源分享之二 机器人学矩阵
关于书中对应各章节的要点,稍晚些时候补充,这里先给出汤晓鸥教授和陈玉琨教授的一些点评,我个人读后收获非常大。
.参考:https://www.ithome.com/html/it/345470.htm
.参考:http://epaper.oeeee.com/epaper/H/html/2017-01/04/content_749.htm
文末附机器人学习能力矩阵,包括:小学、初中、高中、学士、硕士、博士。
补充知识和阅读材料:
--一份为高中生准备的机器学习与人工智能入门指南--
翻译版链接:https://blog.csdn.net/dqcfkyqdxym3f8rb0/article/details/79347385
英文原版:https://github.com/kjaisingh/high-school-guide-to-machine-learning
Being a high schooler myself and having studied Machine Learning and Artificial Intelligence for a year now, I believe that there fails to exist a learning path in this field for High School students. This is my attempt at creating one.
A guide for High School students to learning Machine Learning and Artificial Intelligence
Being a high schooler myself and having studied Machine Learning and Artificial Intelligence for a year now, I believe that there fails to exist a learning path in this field for High School students. This is my attempt to create one.
Over the past few months, I've tried to spend a couple of hours every day understanding this field, be it watching Youtube videos or undertaking projects. I've been guided by older peers who've had far more experience than me, and now feel that I have ample experience to share my insights.
All the information that I have compiled in this guide is intended for high schoolers wishing to excel in this up and coming field. It is intended to be followed chronologically, and unlike most guides/learning paths that I've come across, doesn't require an understanding of linear algebra, partial derivatives and other complex mathemathical concepts which one cannot find in their high school syllabuses.
If you work through this path on a regular basis, I believe that you could get to a pretty high level in about three months. However, this learning path does provide content that can keep you learning for the rest of your high school stay.
So, lets get to it.
1. Learning Python, which you will code your algorithms in.
I strongly suggest Python for this - not only is it extremely easy to learn, it supports pretty much any good library used in Machine Learning. While R is useful, I just find that Python in general is far more suitable for high school students. Besides basic programming, for Machine Learning in particular, the libraries that are most useful are Numpy, Pandas and Matplotlib.
For those of you who have never coded before, I suggest going to a course provided by the University of Toronto (one of the best universities for ML/AI right now). It will take you a few weeks, but its well worth your time - most of the knowledge you gain through this course can be applied to any other programming language, the only difference being the syntax. The course is free, and can be found at https://www.coursera.org/learn/learn-to-program?siteID=SAyYsTvLiGQ-rs4V8qoewjp3oL7Nr.r_Fw&utm_content=10&utm_medium=partners&utm_source=linkshare&utm_campaign=SAyYsTvLiGQ#
For those of you who have coding experience in a language besides Python, just skim through this tutorial for syntax - it won't take you more than a day: https://www.tutorialspoint.com/python/python_basic_syntax.htm
Now, after you've learnt the basics of Python, you need to understand the first two libraries I was talking about (Matplotlib can come later). Numpy arrays and Pandas are used for moving around and modifying the data you use, while Matplotlib is used to visualize this data through graphs and diagrams. The following courses together shouldn't take more than a couple of days:
Great! Now you should be set in the core programming needed to learn Machine Learning and Artificial Intelligence.
2. Getting into the basics of Machine Learning.
If there's one universal course for Machine Learning, it has to be Andrew Ng's course. This course is nothing short of brilliant, though for high school students, it may seem slightly challenging at times, as it refers to concepts such as partial derivatives (though these aren't required to understand the course). I found it beneficial to re-watch some lectures in Weeks 3 to 5 - it may be a bit fast the first time around.
I encourage everyone to go through this and take notes, though doing the programming-related tutorials and exercises is not needed, as its done in Matlab, which (in my experience) is often too tough for high schoolers to grasp. But don't worry, we will be doing the very same (and far more advanced) algorithms in Python in just a short amount of time.
The link to this free course is: https://www.coursera.org/learn/machine-learning
3. Learning an assortment of machine learning algorithms and understand how to implement them in real-world scenarios.
Now, understanding machine learning algorithms without the knowledge of university-level maths - this should be hard in theory, however, a team from Australia resolved this issue.
Kirill Eremenko and Hadelin de Ponteves - a pair from the SuperDataScience team - are absolutely fantastic at finding relevant ways to apply simple algorithms in real life. Furthermore, they go into a suitable amount of depth to understand the functionality of the algorithm, but without the complex mathics that a high school would not be able to understand.
Their course covers both Python and R, though you don't have to worry about R - simply go through the Python tutorials. Also, if you find that they are going a bit too slow, play this course at 1.25x speed (I did that and found it much better).
Their course is on Udemy, and is paid, though Udemy regularly has discounts of 90% or more on their courses. It can be found at https://www.udemy.com/machinelearning/learn/v4/overview, and is usually around $10.
It covers everything from basic regression algorithms to deep and convolutional neural networks. If you wish to explore even more advanced areas, their Deep Learning course is offered at the end of the Machine Learning for a 90% discount. However, concepts in this second course may be a little advanced and lack proper documentation, since they are so new.
If you're unwilling to pay for this course, you can check out Google's free Deep Learning course at https://www.udacity.com/course/deep-learning--ud730 or University of Michigan's free course at https://www.coursera.org/learn/python-machine-learning. However, these are far from as well-rounded as the SuperDataScience team's courses.
For these courses, taking notes aren't a necessity - there are tons of 'algorithm cheat sheets' online, which offer a quick intution on how they work. This website (https://www.analyticsvidhya.com/blog/2017/02/top-28-cheat-sheets-for-machine-learning-data-science-probability-sql-big-data/) lists a few.
4. Explore, explore and explore.
Now, you've covered a wide range of machine learning concepts, and have learnt a vast amount of skills. Its time for you to independently use these on basic projects. I'd suggest going to Kaggle (https://www.kaggle.com/) or the UCI Machine Learning repository (http://archive.ics.uci.edu/ml/datasets.html), finding a dataset you have an interest in, and simply modelling some solutions to these. Play around with different algorithms, and try to optimize performance.
Ensure that the datasets you use are simple and clean in nature - they shouldn't require too much pre-processing or modifying. Some easy dataset (off the top of my head) are the Iris, Wine, Breast Cancer Wisconsin, Autism Screening, Congress Voting, Handwritten Digits MNIST and Fashion MNIST ones.
If you ever come across a road block, Stack Overflow (https://stackoverflow.com/) is your best friend - they have an answer to almost any question that you'd have. If it doesn't, just post one - you should get replies within a couple of hours!
There's nothing much more I need to say here - when you find that you've become comfortable with the whole modelling process, feel free to move on!
5. Find an area of particular interest, and dive deeper.
Now you've got a great and broad understanding of all the basics. However, there's only a limit to what you can do with this. Thus, I suggest you find an area of interest in the broad field of Machine Learning, and look deeper into it. You probably won't have time to become experts in all of these in your high school tenure, but try and conquer one, if not two.
I'll list some possible areas, but before you begin one of these, understand what it is you're getting into. A simple Youtube search for a high-level explanation will give you all you need.
Computer Vision: Probably the hottest field in Machine Learning/AI right now - making computers see and understand things using a special type of neural network. Stanford publishes their course in this online (http://cs231n.stanford.edu/), with lectures, course notes and assignments available online. Go through this, though if the math is too complicated, don't worry - the course is simply to deepen your knowledge. Alternatively, you could look to OpenCV, a computer vision library that does a lot of the complex stuff for you. A great tutorial can be found at https://www.youtube.com/watch?v=Z78zbnLlPUA&list=PLQVvvaa0QuDdttJXlLtAJxJetJcqmqlQq. Once you're done with these, look at more advanced image datasets on Kaggle and UCI, or even enter Kaggle Competitions.
Natural Language Processing: Understanding how computers learn to speak is also a prominent topic today. Once again, Stanford offers a great course thats online (http://web.stanford.edu/class/cs224n/). If you don't understand some of the Math concepts, don't worry, just gain an understanding of how this field works. For implementations, you could undertake this Udemy course: https://www.udemy.com/data-science-natural-language-processing-in-python/. However, you could alternatively go through some of well-known Machine Learner Siraj Raval's videos (such as https://www.youtube.com/watch?v=9zhrxE5PQgY). One you've done these, try undertaking simple, well-known projects like building a chatbot, sentiment analysis or creating lyrics to a song - simple Youtube searches should help you out.
Reinforcement Learning: This domain focuses on how machines learn to act in a particular way, and its most popular application is in the field of video games. Siraj Raval again has a pretty good playlist on this (https://www.youtube.com/watch?v=i_McNBDP9Qs&list=PL2-dafEMk2A5FZ-MnPMpp3PBtZcINKwLA). David Silver's UCL course is great, though beginners may find it a bit tricky - http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html. Once you're done with these, its pretty logical to just start downloading base projects from online, and adding an element of Artificial Intelligence to modify how the agents they act. Simple walkthroughs can again be found via a simple Youtube search.
Data Science: This field is a budding domain with tons of exciting job oppurtunities. I suggest undertaking either SuperDataScience's paid course (https://www.udemy.com/datascience/) or UC San Diego's Python-based free course (https://www.edx.org/course/python-data-science-uc-san-diegox-dse200x), though you should find a specific learning path for data science with a simple Google search. You must also learn SQL (https://www.khanacademy.org/computing/computer-programming/sql) as well as Matplotlib (https://www.youtube.com/watch?v=q7Bo_J8x_dw). The advantage in learning this at a student level is employability - I have friends in high school who've been offered data science internships, as the data gained from their work can instantly be monetized by companies. Its easy for companies to find a way to use a data scientist.
There are also areas like Representation Learning (used for recommendation systems), Adversial Networks (AI improving AI) and Genetic Algorithms (improving a solution to a problem in a way similar to natural evolution), but in my opinion, these are a stretch for most high school students. Do feel free to explore these if you have a particular passion for one of them, though they aren't as well covered as the other domains, largely due to the fact that they aren't currently monetized as much as the other fields.
BONUS (extremely important). Truly understand the field of Artificial Intelligence.
If you want to work in this field in the long run, its crucial to understand what it is about, groundbreaking discoveries and its implications on society. You should start doing things listed in this section as soon as you have the necessary understanding of how the technology works - I believe that this is after Section 4 of this learning path (as you start delving into an area of interest). This kind of information may not particularly help you when implementing algorithms, but its an impressive sign for universities or companies when their prospects are so knowledgeable in the field itself, rather than just the code.
There's a few things that a high schooler should do to deepen their general understanding of the field and make them more knowledgeable, which I'll list here:
Start reading research papers: They really aren't as challenging as they sound. A good portion of them can be almost completely comprehended with a high school Math level. If you ever come across one you don't understand, just put it down - theres more than enough alternatives. This link (https://www.kdnuggets.com/2017/04/top-20-papers-machine-learning.html) offers a host of great papers, though after you finish those, this (http://www.jmlr.org/papers/) offers the most up-to-date list - simply read ones you're interested in or related to your area of 'expertise' from section 5.
Listen to the pioneers: People like Andrew Ng, Ian Goodfellow and Yann LeCunn are regularly interviewed, and give the perspective of engineers of this field on the subject of AI. This Youtube channel (https://www.youtube.com/user/Maaaarth/videos) gathers the best of these talks, and compiles them into a central resource - watch one a night, and I guarantee that you'll feel like an expert within weeks.
Stay up-to-date with the field: Wired is one of the best platforms for anyone interested in tech. It publishes multiple AI-related stories every day, which can be found at https://www.wired.com/tag/artificial-intelligence/. Its simply a great way to understand the trends of the time. Alternatively, subsribe to TechCrunch's Facebook Messenger bot - it often has interested AI-related articles, and prompts you every day.
Understand the implications: There's no better way to do this than listening to TED talks. Their speakers are extremely knowledgeable in the field, and there is an increasing emphasis on AI in their speeches. A host of videos can be found at https://www.youtube.com/user/TEDtalksDirector/videos
The Philosophy: AI has its supporters and its opposers. The philosphy behind it, however, is intriguing. My favourite books that explore this area, and are suitable for High School students, include 'How to Create a Mind' by Ray Kurzweil and 'Life 3.0' by Max Tegmark (http://s3.amazonaws.com/arena-attachments/1446178/cffa5ebc74cee2b1edf58fa9a5bbcb1c.pdf?1511265314) - do try and read these.
Contributing: If you're the kind of person who likes to learn from others experience, check out the Artificial Intelligence & Deep Learning Facebook group. Alternatively, if you prefer conversations, check out Reddit's thread on AI at https://www.reddit.com/r/artificial/.
Delve into the math: Yes, you do need university level math skills, but if you're an extremeley strong math student, there's nothing stopping you from taking some online courses. This quora thread (https://www.quora.com/How-do-I-learn-mathematics-for-machine-learning) has some great resources that you should check out. 3Blue1Brown (https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw/playlists) is a famous name in the community too, as his Youtube videos are fantastic for learning the maths behind some of these more complicated concepts.
Conclusion
I wish everyone the best of luck in undertaking this learning path. I've heard too many people say Machine Learning and Artificial Intelligence is too complicated to learn as a high school student to not write this - with a well-paved learning path, it can be done by anyone. Its just that due to the field being so new and generally thought of as a graduate field of study, theres a lack of one for high school students.
If anyone has additions, suggestions, queries or feedback, feel free to write to me @ kj.jaisingh@gmail.com.
--机器人方向--
MIT Zero Robotics中学计划:http://zerorobotics.mit.edu/ms/
--NASA机器人学矩阵--
涵盖了从幼儿园到博士的全部内容。五星推荐。https://robotics.nasa.gov/edu/matrix.php
----
Educational Robotics Matrix
Check back often as this list always continues to develop. If you have any suggestions for additional content, or to report broken links, please direct your e-mail to arc-rap@mail.nasa.gov
Interested in how the National Science Education Standards relate to robotics?
Find out at BotBalls' Website!
Find National Standards for the following subjects:
Math, Science, Engineering, Technology (ITEEA and ISTE), Language Arts, Social Studies
--具体内容如下--
|
----
机器人世界与机器人操作系统(ROS):https://www.edx.org/course/hello-real-world-with-ros-robot-operating-system
你有兴趣采取机器人技术的第一步吗?你是否寻求切实可行的方法,并希望通过这样做来学习?加入我们的课程,学习如何使用ROS编写完整的真实世界机器人系统!
机器人操作系统(ROS)使您能够通过访问大量开源软件和工具来快速构建机器人应用程序。多年来,ROS已经成为机器人专家的必备工具。一个大型社区围绕着ROS,工业用户在这些工具的开发中已经有了大量的投入。
用于操纵,感知和导航的许多新的高级机器人功能都是使用ROS开发的。像空客和波音这样的公司正在使用ROS来处理他们的一些应用。代尔夫特理工大学的代尔夫特机器人系统团队在2016年亚马逊机器人挑战赛上赢得了两项挑战,其中使用ROS开发的机器人。
在本课程中,您将学习使用不同的ROS工具来创建一个完整的机器人应用程序。您将在基于物理学的仿真引擎Gazebo上使用您自己的独立Ubuntu-Linux安装以及工业和移动机器人。您将学习编程和配置基本的机器人任务,例如拾取和放置对象,并浏览障碍物。然后,您将整合所有这些知识,用两个机器人手臂和一个移动机器人构建工业生产线。
最好的最终项目将在代尔夫特的工业示范设施中的真实机器人上进行测试!
你准备好让你的机器人用ROS来向你的(真实)世界说“你好”吗?
本课程的课程资料属于代尔夫特理工大学版权所有,并根据知识共享署名 - 非商业性使用 - 相同方式(CC-BY-NC-SA)4.0国际许可证授权。
你会学到什么
- 如何使用ROS通信工具(主题,服务,动作)在功能模块之间交换信息
- 使用机器人可视化并创建自定义环境
- 机器人环境和导航与移动机器人的映射
- 如何用工业机器人手臂实现拾放功能
- 用状态机设计一个完整的机器人应用程序
课程纲要
跳过教学大纲说明 第0周:课程设置安装Ubuntu-Linux,课程模拟设置和支持软件。
第1周:ROS Essentials
ROS主题,服务,操作和节点介绍。与课程模拟环境简单交互。
第2周:构建您自己的机器人环境
使用统一机器人描述格式(URDF),ROS参数服务器以及将真实世界对象表示添加到仿真环境中 的机器人的软件表示。
第3周:
使用GMapping软件包创建自主导航地图,使用ROS导航自动导航已知地图。
第4周:操作
运动规划,采用ROS MoveIt工业机器人拾取和放置行为!
第5周:机器人视觉
对象检测,姿态估计。
第6周:最终项目
ROS文件系统,状态机行为设计的基本概念,使用两个工业机器人手臂和一个移动机器人构建生产线应用程序。
----
稍后补充一些书籍资料pdf。
--机器人学习能力矩阵--
https://robotics.nasa.gov/edu/matrix.php
课程 |
比赛 |
实习 |
|
小学阶段 |
Squeakland Imagiverse Pre-K-12工程 制作你自己的Rover Web上的教室机器人 想象一下火星 建立一个Nanorover 机器人活动 适用于教育工作者的机器人入门套件针对 |
RoboCupJunior 三位一体消防机器人大赛 FIRST®LEGO®League Junior Robofest FIRST® LEGO®联赛 攻坚机器人 EARLY Robotics |
ID Tech Camps 空间营 |
初中阶段 |
Imagiverse Pre-K-12工程 制作你自己的Rover 想象一下火星 机器人活动 适用于教育工作者的机器人入门套件针对 机器人学院夏令营 Botball和计算机科学课程 多单元机器人课程为 |
BotBall RoboCupJunior 三位一体消防机器人大赛 Battlebots IQ Robofest FIRST® LEGO®联赛 攻坚机器人 |
ID Tech Camps 空间营 |
高中阶段 |
Pre-K-12工程 适用于教育工作者的机器人入门套件针对 机器人学院夏令营 Botball和计算机科学课程 多单元机器人课程为 IntelliBrain-Bot GEARS教育系统 Battlebots IQ 机器人自主活动 机器人编程 机器人技术课程 课堂上的邮票 EST基础 |
BotBall RoboCupJunior 三位一体消防机器人大赛 Battlebots IQ BEST Robotics FIRST®机器人竞赛 Robofest 攻坚机器人 FIRST®技术挑战 VEX机器人大赛 |
美国宇航局学生机会 ID Tech Camps
美国宇航局夏季高中学徒研究计划(夏普) 美国宇航局MSFC机器人学院 |
学士本科阶段 |
提供机器人程序的大学列表 自主多机器人系统自主多机器人系统的 一般机器人课程 CMU机器人本科专业 大学 |
三位一体消防机器人大赛 Battlebots IQ 合作研究经历 RoboCup VEX机器人大赛 |
美国宇航局学生机会 美国宇航局乔布斯 强攻机器人实习 iD Tech Camps Jobs 美国宇航局MSFC机器人学院 |
硕士研究生阶段 |
提供机器人程序的大学列表 自主多机器人系统自主多机器人系统的 一般机器人课程 卡内基梅隆大学机器人研究所机器人 大学 |
三位一体消防机器人大赛 RoboCup |
美国宇航局学生机会 美国宇航局乔布斯 行星科学暑期学校 |
博士研究生阶段 |
提供机器人程序的大学列表 自主多机器人系统自主多机器人系统的 一般机器人课程 卡内基梅隆大学机器人研究所机器人 大学 |
三位一体消防机器人大赛 RoboCup |
美国宇航局学生机会 美国宇航局乔布斯 行星科学暑期学校 |
----
文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。
原文链接:zhangrelay.blog.csdn.net/article/details/80743430
- 点赞
- 收藏
- 关注作者
评论(0)