从零开始学AI(数学基础之线性代数和高等数学)

     这周又开了一次线下课程,这次一点代码没讲,只是讲了一下数学基础,讲的内容很简单,听着一点也不吃力,都是大学的数学,内容也比较少,自我感觉吧,这点数学基础肯定是不够的,深度学习的东西虽然我还没入门,但是觉得用到的数学还是蛮多的,可能不需要你写太多东西,但是一定是要理解的,不理解的话,东西是做不成的。废话不多说了,就说说这周学习的内容吧。

     为什么要学这些数学内容,其实我不是很清楚的哈,自己大致就是觉得算法中用到了这些数学内容,要理解他们,才要预备的吧,下面是我们老师的PPT的内容,我直接贴图吧,我也写不出来...

高等数学

这部分主要讲的是高等数学部分的微积分的内容,然后又补充了两个大学里面没学过的内容,链式法则和梯度下降法。主要内容我就不说了,只说一下涉及到的内容

  1. 导数和微分

  2. 偏导

  3. 链式法则

  4. 梯度下降法

线性代数

线性代数都是比较基础的东西,不知道后面会不会用到难点的,矩阵的乘法比较常用,还是多看下矩阵乘法

  1. 标量、向量、矩阵、张量

  2. 矩阵转置、单位矩阵

  3. 矩阵和向量相乘

课后作业

下课后,老师留了一道课后作业,是梯度下降的一道课后习题,使用梯度下降算法求解,如下图所示:

下面是我的求解方法,答案是正确的,已让老师看过:

手写步骤:

代码

'''
题目:使用梯度下降法模拟求解y=(2x+4)2 + 1的最小值
x范围[-10, 6],起点随机选取,参考epsilon:1e-5
当|yn - yn-1| < 1e-5就停止迭代
梯度=方向
学习率=步长
'''
EPSILON = 1e-5

# 求解方程值
def getYValue(x):
    return (x * 2 + 4)**2 + 1

# 梯度 * 步长
def gradient(x, step):
    return ((x * 8) + 16) * step

if __name__== "__main__":

    # 起始点
    curXValue = lastXValue = -9.2
    curYValue = lastYValue = 0
    step = 0.1
    count = 1
    while True:
        lastYValue = getYValue(lastXValue)
        curXValue = lastXValue - gradient(lastXValue, step)
        curYValue = getYValue(curXValue)
        print(lastXValue, curXValue)
        lastXValue = curXValue

        count += 1
        if abs(curYValue - lastYValue) < EPSILON:
            print("步长:$ 迭代次数:$ X值:$ Y值:$", step, count, curXValue, curYValue)
            break
        

运行结果:

学习的具体内容,非代码相关的,我就不怎么在博客上写了,因为大学基本都学过,最重要的是如果写的话,会占据我很多时间,我还想往下面多学点东西,见谅,记录自己成长...

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值