首页 > 其他分享 >机器学习-微积分

机器学习-微积分

时间:2024-03-20 14:56:49浏览次数:21  
标签:机器 函数 导数 gradient 微积分 学习 vector time hessian

损失函数

损失函数的意义

机器学习-linear regression-两大经典场景 线性回归-预测房价

分类-classification problem

使用到的数学知识

导数-derivative

函数在某一时刻的瞬时变化率 instantaneous rate of change

函数在某点的切线斜率 = 导数

最大值、最小值的点的导数=0,即函数的瞬时变化率=0

y=C 水平线的导数 斜率=0 线性方程的 斜率=变量的系数

二阶方程的导数 f=x2->2x

3阶方程导数y=x3->3x2

导数的普适公式

反函数

sinx的导数是cosx

cosx的导数是-sinx

欧拉e的导数还是e

e=2.7182818

logX的导数1/y

函数可导

复杂函数求导 乘以标量

总和法则

乘法规则

链式法则

平方损失优化

使用log函数->求导->极值点的值

为什么使用log求导

多元模型 f(x,y)=x2+y2

偏导数

梯度

函数在(2,3)点上的梯度[4,6]

通过梯度求最小值

在多维空间中求极值,在各个变量的偏导均为0的点是极值点,极值点作为候选再选择最大最小

 

线性回归-给出一堆点->求离他们最近的直线

导数下降

learning rate 学习率

解决梯度下降带来的最小值错觉

多路同时求值

梯度下降

梯度陷阱

感知器-perceptron linear regression-使用均方误差损失函数

classification-使用对数损失函数

神经网络

反向传播

从最后的Layer开始求导

牛顿法

二阶导数

曲率-curvature

hessian martix 海森矩阵

二元函数的二阶导数

对多元方程,通过特征值判断局面的凹凸 特征值全部>0,凹面

特征值全部<0,凸面

多元变量的牛顿法

"""
learning store for machine learning
"""
import time
import numpy as np


def time_cost(function):
    """
    用于统计执行耗时的装饰器
    """
    def wrapper(*args, **kwargs):
        start = time.time()
        res = function(*args, **kwargs)
        end = time.time()
        print(f"{function.__name__} cost {end - start:.8f} s")
        return res
    return wrapper


@time_cost
def cal_delta(hessian_matrix, gradient_vector):
    """
    cal next step
    """
    hessian_inv = np.linalg.inv(hessian_matrix)
    vector = gradient_vector.reshape(-1, 1)
    result = np.dot(hessian_inv, vector)


    return result


def cal_next_step(cur_step_vector, hessian_matrix, gradient_vector):
    """
    使用海森矩阵牛顿法推理下一步的点位
    """
    delta_vector = cal_delta(hessian_matrix, gradient_vector)
    return (cur_step_vector - delta_vector).reshape(1,-1).tolist()[0]




if __name__ == "__main__":
    hessian = np.array([[198.4, -2.6], [-2.6, 157.6]])
    gradient = np.array([277.6, 213.6])
    cur_point = np.array([[4],[4]])
    next_point = cal_next_step(cur_point, hessian, gradient)
    print(next_point)

标签:机器,函数,导数,gradient,微积分,学习,vector,time,hessian
From: https://www.cnblogs.com/watch2learn/p/18085223

相关文章

  • 【学习】软件测试工程师必备的技术能力有哪些
    在软件开发领域,软件测试工程师扮演着至关重要的角色。他们肩负着确保软件质量的重任,需要具备一系列的技术能力,以全面地检测软件的各种潜在问题。本文将探讨软件测试工程师必备的技术能力,旨在为读者提供一个全面的视角,以便更好地理解和欣赏这一领域的挑战和机遇。首先,软件测......
  • 【学习】Web测试是在测什么?有哪些容易被忽视的小细节?
    Web测试,这个看似简单的词汇,却关乎着互联网产品的质量和用户体验。那么,Web测试到底在测什么呢?在探讨这个问题之前,让我们先了解一下Web测试的定义:Web测试是一种针对Web应用程序的测试过程,旨在发现并纠正其中的错误和缺陷,以确保产品的稳定性和可靠性。在这个过程中,测试人员需要......
  • JAVA学习-NIO.Buffer(缓冲器)
        JavaNIO中的缓冲器(Buffer)是用来存储数据的对象。它是一个固定大小的数组,可以容纳特定类型的数据。一、JavaNIO中提供了7种类型的缓冲器,分别是:1.ByteBuffer:字节缓冲器,用来存储字节数据。2.CharBuffer:字符缓冲器,用来存储字符数据。3.ShortBuffer:短整型缓......
  • JAVA学习-NIO.Channel(通道)
        在JavaNIO中,Channel(通道)是用于在文件、套接字、管道等之间进行数据传输的对象,它类似于传统IO中的流。通道可以用于读取和写入数据,并且可以同时进行读写。一、JavaNIO中提供了几种类型的通道,主要有以下几种:1.FileChannel:用于对文件进行读写操作的通道。2.Da......
  • 江科大STM32学习笔记(上)
    @目录前言外设篇GPIO输出GPIO位结构GPIO模式外设的GPIO配置查看实战1:如何进行基本的GPIO输入输出OLED显示屏及调试Keil的调试模式演示EXTI外部中断NVIC基本结构EXTI结构代码实战2:如何使用中断和对射式红外传感器&旋转编码器TIM(Timer)定时器1.1基本定时器(TIM6和TIM7)1.1_1_时基单元......
  • ChatGPT:开启高效学习与智能生活的秘密武器!
    一、背景自从开始使用ChatGPT帮忙处理日常工作,我的效率简直提升了不止一个层次,工作完成得又快又好。这让我有了更多的空闲时间,可以随心所欲地享受生活。而且,ChatGPT不仅功能强大,还非常人性化。⭐⭐点击进入国内:ChatGPT这个网站注册就能免费体验3.5和4.0版本,每天都有机会免......
  • sql学习
     --学生表CREATETABLEt_student(idBIGINTPRIMARYKEY,nameVARCHAR(255),genderVARCHAR(255),ageINT,addressVARCHAR(255),......
  • 三菱PLC实例学习
    案例一:控制两台电机(水泵)1.工艺分析(硬件选型)控制要求:1.单独控制:两台电动机互不影响地独立操作启动与停止(即可通过两个独立的按钮分别控制电机M1和电机M2的启停)2.两台电动机又可以联动控制(可以同时启动,也可以同时停止)3.电机过载(热接触器)时,需要单独报警4.有故障确认或故障复......
  • 【机器学习】无监督学习算法之:主成分分析
    主成分分析1、引言2、主成分分析2.1定义2.2原理2.3实现方式2.4算法公式2.5代码示例3、总结1、引言小屌丝:鱼哥,快,快。小鱼:…啥情况,你可别乱喊。小屌丝:额…我的意思,是你该继续小鱼:…说清楚,继续啥???小屌丝:就…就是…继续啊小鱼:我擦…你说清楚,不然容易误......
  • HTML学习(3)(HTML字符格式)
    常见的字符格式有字体颜色,字体大小,加粗,倾斜等。字符格式化标签标签功能标签功能<b>定义粗体文本<sub>定义下标字<em>定义着重文本<sup>定义上标字<i>定义斜体字<ins>定义插入字<small>定义小号字<del>定义删除字<strong>定义加重语气<u>下画线计算机输出标签标签功能<code>定义计......