run哥带你手撕梯度下降

为什么会有这篇水文呢?因为这周末就是TCTF2022 突然想到去年TCTF有道机器学习的题目 然后最近在学校里有上机器学习的水课 忍不住想动手实践实践

梯度下降

先来简单地介绍一下梯度下降 只要你了解过一丢丢的机器学习 你总该会了解到梯度下降 貌似高数也学过

啥叫梯度下降 说白了就是你在很多山上走路 然后不停往下走 试图走到最低点

在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升/下降最快的方向

放张我认为讲的很明白的图

image-20220914153759710

α是步长

这里我就不做过多解释了 想refresher的去看吴恩达

实践

如何在图片中进行梯度下降?由于我平时是做AI网络的 对图像这块也不是很了解

首先要找到一个误差损失函数,然后对误差损失函数进行梯度下降?

记录一下几个关键的点

  • 我们知道目标的 key 且我们可以得到每个照片的 encoding
  • 我们想要找到一种更改图片的好方法
  • 想要知道梯度的话就要把拿模型函数来算损失

我们都知道 图像的每个像素都是由 R,G,B 组成的 我们将图片的每个

image-20220914185100029

参考

TCTF/0CTF final WP by r3kapig - 安全客,安全资讯平台 (anquanke.com)