被考试拖着好久没能看专业课东西了,终于可以开始了.而且还有了宝藏老师指导,要加油啊,变成大佬!
P1的主要思想--机器学习的三个步骤, 与这三步分别用不同的路径实现, 以此对主流模型分类
目录
课程介绍
想找什么样的函式(给定function set)
告诉机器要找什么函式(估计function好坏)
机器怎么找函式(找到最好的function)
前沿研究
一般规则
Google Drive 檔案存取
15个作业,角越多作业越难,有外框需要上传到kaggle
老师主页:
ML 2020 Spring
https://www.youtube.com/watch?v=CXgbekl66jc&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49
https://www.youtube.com/playlist?list=PLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4
助教黃健祐 Chien-yu Huang信箱:[email protected]
官网课程列表:
https://www.youtube.com/watch?v=CXgbekl66jc&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49
New Optimizers for Deep Learning助教补充课, 在深度学习/训练神经网络时候常用到的优化方法
机器学习=自动找函式(映射)
早上听了贾静平老师讲课, 在互动过程中, 确实发现自己之前学的时候有一些概念混淆与漏洞. 对于机器学习的3步骤:
1.写出假设函数(带有未知参数的函式)(一元线性、多元线性、对数几率)
2.定义误差函数(最小二乘法、极大似然估计或MAP最大后验概率估计或拉格朗日乘子法)
3.最优化(找到最好的一组参数使得误差最小)(梯度下降算法)
我将误差函数(极大似然估计)与最优化方法(梯度下降)混淆了.
监督(9个经典算法)+非监督(1个经典算法)+强化学习
监督学习根据响应划分为: 分类(类属响应)/回归(实数响应)
如对率回归是分类算法, 用连续函数模拟分段类属.
非监督: 无响应, 划分为簇
监督学习按类别数划分: 2分类(响应值只有2类), 多分类-multiclass(类别间互斥)/multi-label(类别间不互斥)
Regression(回归) ->输出数值scalar(标量)
Classification和RNN->输出结果binary(T/F,pos/neg)
CNN->multiple class多分类(N个选项中选)
Seq2seq(产生文句)和GAN(二次元图像)->Generation(生成)复杂的东西
Supervised Learning监督学习:给出答案,有Labeled Data(标注),机器评估函式的Loss(损失函数-好坏),自动找出Loss最低的函式。(Regression、Classification、RNN、CNN、Seq2seq)
Reinforcement Learning强化学习:根据输赢给出Reward引导学习方向
Unsupervised Learning:数据没有标注(Auto-encoder、GAN)
给定寻找范围
Regression、Classification考虑Linear
RNN、CNN考虑Neural Network: RNN循环神经网络-在Seq2seq用,CNN卷积神经网络(用处超多)
范围中寻找的的方法
主要Gradient Descent梯度下降
Regression和Classification要自己实现梯度下降算法,其他的用pytorch的深度学习框架实现
Explainable AI(可解释的)
Adversarial Attack对抗攻击(奇奇怪怪的杂讯、噪声)
Network Compression(模型学习网络太大了,压缩一下)
Anomaly Detection异常检测(知道‘我不知道’)
Transfer Learning迁移学习(Domain Adversarial Learning)一般训练资料和测试资料分布同,但实际情况往往差异很大
Meta Learning元学习(Learn to learn老套娃了)用一个程式自己写另一个程式
Life-long Learning持续学习
这个视频有装环境示范哦
1. Environment
Linux或macOS
Python3.6.8
用pyenv管理python版本
想偷懒用anaconda,结果navigator突然打不开了= =,报错
2021-04-05 21:48:39,141 - ERROR download_api._get_url:417 Expecting value: line 1 column 1 (char 0) Traceback (most recent call last): File "D:\ProgramData\Anaconda3\lib\site-packages\anaconda_navigator\widgets\main_window.py", line 499, in setup self.post_setup(conda_data=conda_data) File "D:\ProgramData\Anaconda3\lib\site-packages\anaconda_navigator\widgets\main_window.py", line 536, in post_setup self.tab_home.setup(conda_data) File "D:\ProgramData\Anaconda3\lib\site-packages\anaconda_navigator\widgets\tabs\home.py", line 169, in setup self.set_applications(applications, packages) File "D:\ProgramData\Anaconda3\lib\site-packages\anaconda_navigator\widgets\tabs\home.py", line 204, in set_applications apps = self.api.process_apps(applications, prefix=self.current_prefix) File "D:\ProgramData\Anaconda3\lib\site-packages\anaconda_navigator\api\anaconda_api.py", line 903, in process_apps versions=[vsdata.get('productVersion')], AttributeError: 'str' object has no attribute 'get' |
解决办法
anaconda3\Lib\site-packages\anaconda_navigator\api\conda_api.py 行1364 把 data = yaml.load(f) 改为 data = yaml.safeload(f) |
创建环境
conda create --name LeeML python=3.6.8 |
环境切换
activate env_name |
安装指定包
conda install tensorflow-gpu==1.4.0 |
创建环境失败,可能需要换镜像
https://blog.csdn.net/hdq1745/article/details/105105728
conda config --add channels Index of /anaconda/pkgs/free/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror |
conda config --set show_channel_urls yes |
还是有毛病诶,可能anaconda坏了,更新一下试试
Anaconda如何升级到新版? - 知乎
好像conda也坏了…
偷懒不了了,但是VMware太占空间了,不想用. VirtualBox试试?
Ubuntu20.4镜像有2.7个G, 到底是一个操作系统啊, 太大了, 想念anaconda了, 安装包才457M, 还是重装anaconda了
https://blog.csdn.net/lagoon_lala/article/details/88638121
成功了,搭了个3.6.8的环境
2. Kaggle
可以注册,用到谷歌的人机识别,国内不太好弄呢,喊大佬帮我搞了一下
该课程用到其中的in-class competition,找到了NTU ML2017 Spring HW4不过桑心的是,显示: This is a limited-participation competition. Only invited users may participate.
3. GitHub
所有作業的繳交都是透過 GitHub Classroom 來完成。但貌似是需要邀请码才能加入教室,登入https://classroom.github.com/a/-R9ZkKDU页面已经404了
5. Contact TAs
若對作業或課程規定有任何問題,你可以
•將疑問張貼於FB社團,你的問題也可能是別人的問題。
•寫信至 [email protected],並請記得於標題以[ hwX] 註明作業編號。-舉例來說,作業三的問題就必須用[ hw3]作為信件標題開頭。
我没有扫哦,听完课会感觉自己说话有点湾湾腔
https://colab.research.google.com/drive/1i41Whco5KIb7EuntKYwTVORAkAwCmlkF
透過 Google 提供的套件,我們可以讓 Colab 上的程式直接讀取自己的雲端硬碟。 這個方法的好處是只要檔案存在於自己的雲端硬碟,就隨時都可以直接存取;相對地,缺點就是使用者得手動將檔案加入,並且在程式運行時要輸入連結 Google Drive 所需要的授權碼
# OpenCV 套件,和 Google Drive 無關
import cv2
# import Google Drive 套件
from google.colab import drive
# 將自己的雲端硬碟掛載上去
drive.mount('/content/gdrive')
# 透過 gdrive/My Drive/... 來存取檔案
img = cv2.imread('gdrive/My Drive/Minori.jpg')