思维图和脑图在Processon的微信账号
辅助图像
方向导数的图像直观理解及公式推导
https://www.bilibili.com/video/BV1uZ4y1L7bB/?spm_id_from=333.999.0.0&vd_source=e8c4fa6e99b7896ec2ef4f1bb7bed7ce
证明方向导数
https://zhuanlan.zhihu.com/p/38525412
为什么梯度是最快的方向
https://zhuanlan.zhihu.com/p/38525412
矩阵的梯度求解
矩阵 - 梯度下降 - 代码解法
def loss_grad(o1,o2,label):
# loss = (o1 - 14)**2 + (o2 - 11)**2
# loss对o1的偏导和loss对o2的偏导
grad = [2 * (o1-label[0]),2 * (o2-label[1])]
return np.array(grad)
def matrix_grad_demo():
"""
4x + 5y = o1
7x + 2y = o2
label = [14,11] 期望值
loss = (o1 - 14)**2 + (o2 - 11)**2 损失函数
"""
A = np.array([[4,5],[7,2]])
X = np.array([2,6.2])
Label = np.array([14,11])
lr = 0.001
for i in range(1000):
O = A @ X
grad = A.T @ loss_grad(O[0],O[1],Label)
X[0] = X[0] - lr * grad[0]
X[1] = X[1] - lr * grad[1]
print("x[0]:{},x[1]:{}".format(X[0],X[1]))
matrix_grad_demo()
# 我按我的理解自己写了一次
def LtoC(Q,C): # 返回期望值对输出值的导数矩阵
'''
L = (Q[0] - C[0])**2 + (Q[1] - C[1])**2
'''
return np.array([2 * (C[0] - Q[0]),2 * (C[1] - Q[1])])
def myGrad():
'''
5x + 6y = o1
2x + 9y = o2
'''
Q = [28, 31]
Q = [64, 85]
A = np.array([[5,6],[2,9]])
X = np.array([2.5,6.7])
C = A @ X
lr = 0.005
for i in range(10000):
C = A @ X
X[0] = X[0] - lr * LtoC(Q,C)[0]
X[1] = X[1] - lr * LtoC(Q,C)[1]
print(X)
myGrad()
线性回归问题的解析解推导(假定误差满足高斯分布)
Logistic回归算法损失函数求导(主要分析红框的内容)
关于梯度和拉格朗日通过可视化讲得很好的YouTube视频
https://www.youtube.com/watch?v=fYe0tU1Yimo
相关的可视化资料:梯度https://www.geogebra.org/m/RGZNtfu3 拉格朗日https://www.geogebra.org/m/cqmCmg7V
关于支持向量机一个很好的YouTube视频
https://www.youtube.com/watch?v=1IB2jDiZf74
双竖线(范数)
GBDT的学习
CART决策树(二叉树)->回归树和分类树https://www.bilibili.com/video/BV1mN411Z7j1/?p=5&spm_id_from=pageDriver&vd_source=e8c4fa6e99b7896ec2ef4f1bb7bed7ce
关于GBDT的概述https://www.bilibili.com/video/BV1tF411n7cS?p=1
关于GBDT的基础和公式推导(包括泰勒一阶展开->为了在没有确定损失函数的情况下对目标函数进行优化求解推导)非常重要!!https://www.bilibili.com/video/BV1K5411g7nB?p=4&vd_source=e8c4fa6e99b7896ec2ef4f1bb7bed7ce
关于XBboost的基础和公式推导https://www.bilibili.com/video/BV1nP4y177rw/?p=5&vd_source=e8c4fa6e99b7896ec2ef4f1bb7bed7ce(非常重要!)
K-Means++
一个可视化很好的视频https://www.youtube.com/watch?v=4qJWhvFQb9g
损失函数
最小二乘法和极大似然估计(可以应用在不连续数据上)https://www.youtube.com/watch?v=pjfnMgAnnIk
SVM算法推导
关于街宽
adaboost
分类下的交叉熵损失函数的导数
https://www.bilibili.com/video/BV1NU4y1w7C9/
安装torch和tensorflow-gpu
# 安装torch,在官网搞下载命令(下面是GPU款的)官网
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121
# 怎么查看cuda版本
nvidia-smi
# 安装tensorflow-gpu
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.4.1 --user
# 运行后会报错版本的不匹配的一些问题,但似乎没什么关系,因为会发现tensorboard能用
# 然而这个时候torch就不能用了,会报错from typing_extensions import ParamSpecImportError: cannot import name 'ParamSpec' from 'typing_extensions
# 这个时候更新pip install typing-extensions==4.2.0
# 然后还会报错Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found,这个时候需要按照课程pdf实训指导书里的将cudart64_101.dll拷贝到c:\windows\system32目录下,然后就居然成功了!
# 然后就能用tensorboard --logdir C:\Users\Administrator\AppData\Roaming\JetBrains\PyCharmCE2023.2\scratches\log\mock_accuracy打开了