AlexNet解析
AlexNet解析卷积神经网络经典回顾之AlexNet - 知乎 (zhihu.com)
AlexNet论文逐段精读【论文精读】_哔哩哔哩_bilibili
饱和:saturating
非饱和:non-saturating
常用激活函数
常用激活函数激活函数汇总_高斯激活函数-CSDN博客
常用的激活函数合集(详细版)-CSDN博客
重点关注ReLU(max(0,x)),Sigmoid(0-1),Softmax(0-1概率)
神经网络之softmax(作用,工作原理【示例说明】,损失计算)_softmax层-CSDN博客
预处理直接做原始图片 (224 * 224 * 3)
饱和(saturating)和非饱和(non-saturating)的激活函数
饱和(saturating)和非饱和(non-saturating)的激活函数在神经网络中,激活函数是决定网络能否学习复杂模式的关键因素之一。激活函数的选择会影响网络的收敛速度、性能以及最终的泛化能力。激活函数可以根据其输出特性被分为“饱和”(saturating)和“非饱和”(non-saturating)两大类:
饱和激活函数(Saturating Activation Functions)
定义:
饱和激活函数是指当输入值增大或减小时,函数的输出值会达到一个上限或下限,并在该范围内趋于稳定,不再随输入的增加而显著变化。
特点:
输出值存在一个明显的上限和下限。
当输入值增大到一定程度后,输出值不再显著增加(或减少)。
例子:
Sigmoid 函数:[ \sigma(x) = \frac{1}{1 + e^{-x}} ]
Tanh 函数(双曲正切函数):[ \tanh(x) = \frac{2}{1 + e^{-2x}} - 1 ]
ReLU 函数(Rectified Linear Unit)在正区间内是非饱和的,但在负区间内是饱和的。
影响: ...
残差连接(Residual Connection)
残差连接(Residual Connection)【深度学习 | ResNet核心思想】残差连接 & 跳跃连接:让信息自由流动的神奇之道-CSDN博客
背景:在深度神经网络中,随着层数的增加,网络的性能在一定程度上会提高(网格退化 Degradation)。然而,深度网络的训练也面临着一些挑战,其中之一是梯度消失或梯度爆炸的问题。当反向传播过程中的梯度变得非常小或非常大时,网络的参数更新会受到影响,导致训练变得困难。
梯度消失和梯度爆炸:概念:梯度消失:在深层网络中,梯度需要通过多个层次进行反向传播。根据链式法则,梯度在传播过程中会不断相乘,当层数较多时,梯度值可能会以指数形式衰减并趋近于零,导致梯度消失。
梯度爆炸:深层网络中的梯度在传播过程中也可能因链式法则的连乘效应而迅速增长,甚至呈指数级增长,导致网络参数更新过大,网络不稳定。
为什么会梯度消失:在使用激活函数为Sigmoid或Tanh等饱和激活函数时,因为这些函数在输入较大或较小的情况下会饱和并导致梯度变得非常小。当输入接近1时,Sigmoid函数的输出值会接近于1,导数趋近于0。于是在反向传播过程中,梯度的乘积会趋 ...
线段树
线段树线段树是一种二叉树,也就是对于一个线段,我们会用一个二叉树来表示。
性质:节点 i 的权值 = 她的左儿子权值 + 她的右儿子权值。
1. 建树根据这个思路,我们就可以建树了,我们设一个结构体 tree,tree[i].l 与 tree[i].r 分别表示这个点代表的线段的左右下标,tree[i].sum 表示这个节点表示的线段和。
我们知道,一颗从1开始编号的二叉树,结点 i 的左儿子和右儿子编号分别是 2×i 和 2×i+1。
再根据刚才的性质,得到式子:tree[ i ].sum = tree[i∗2].sum + tree [i∗2+1].sum ,就可以建一颗线段树了!代码如下(这里以区间求和的查询为例):
12345678910111213void build(int i,int l,int r){//递归建树 tree[i].l=l;tree[i].r=r; if(l==r){//如果这个节点是叶子节点 tree[i].sum=input[l]; return ; } ...
Transformer解析
Transformer解析(Attention Is All You Need)【超详细】【原理篇&实战篇】一文读懂Transformer-CSDN博客
Transformer论文逐段精读【论文精读】_哔哩哔哩_bilibili
【超详细】【原理篇&实战篇】一文读懂Transformer-CSDN博客
大模型面试准备(十二):深入剖析Transformer - 残差连接和层归一化_残差层和归一化层-CSDN博客
Transformer通俗笔记:从Word2Vec、Seq2Seq逐步理解到GPT、BERT-CSDN博客
“Attention Is All You Need” 是一篇由 Ashish Vaswani 等人撰写的论文,发表于 2017 年的 NeurIPS 会议上。这篇论文提出了 Transformer 模型,Transformer是一种用于自然语言处理(NLP)和其他序列到序列(sequence-to-sequence)任务的深度学习模型架构。Transformer架构引入了自注意力机制(self-attention mechanism),这是一个关键的创 ...
两万字讲清楚:现在的AI产品有多难做?
两万字讲清楚:现在的AI产品有多难做?https://mp.weixin.qq.com/s/pMt_VMs6uq5wsPPscOyefA
这篇文章深入探讨了AI产品经理在处理大型AI模型时应该考虑的关键问题和机遇。
1. 关注API而非仅仅是产品
核心观点:产品经理应该深入理解大模型的API,因为这是模型能力的直接体现。产品的最终形态往往是API能力的延伸,但可能会因为各种工程限制而与API的能力有所差异。
实际意义:了解API的能力和限制可以帮助产品经理更准确地设计产品功能,避免过度依赖模型无法实现的功能。
2. AI与移动互联网的类比不恰当
核心观点:简单地将AI技术应用到所有应用中并不是一个有效策略。只有那些真正能够从AI中获得显著优势的应用才应该进行AI重构。
实际意义:这要求产品经理进行深入的需求分析和成本效益分析,以确定AI的投入是否真正值得。
3. 产品经理需要学会调用API
核心观点:产品经理应该具备直接与AI模型交互的能力,这有助于更好地理解模型的能力和局限。
实际意义:这种能力可以帮助产品经理在产品开发过程中做出更准确的决策,并能够快速迭代产品以适应模型的变化。 ...
大模型学习路线
大模型学习路线
现在门槛降低了,成本也降低了。大模型技术爆发,抓住机会。
开源大模型(离线,更安全)/在线大模型
微调:Lora->垂类
适用于用户意图识别
RAG:检索增强生成(一系列专家,提升表现幅度,降低幻觉)
只要提供了正确答案,大概率就不会答错
适合私有数据库
所以依赖于提供的数据库的信息,对数据质量要求比较高
推理更加缓慢(低于微调)
对知识库构建/信息压缩排名等(并非深度学习方面,需要深度学习算法工程师进行辅助)
提示词工程
【AI大模型】Prompt 提示词工程使用详解_大模型prompt的用法详解-CSDN博客
预训练:创造出属于自己的全新大模型
需要算力最多(微调其次,RAG和提示词工程对于算力的要求就没那么高)
agent->担任80%脑力工作
一些课程NLPFudanNLP/nlp-beginner: NLP上手教程 (github.com)
自然语言处理的入门练习
深度学习跟李沐学AI的个人空间-跟李沐学AI个人主页-哔哩哔哩视频 (bilibili.com)
动手学深度学习
论文精读https ...
xxl-job学习笔记
xxl-job学习笔记基础概念xxl-job是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
任务执行流程
执行流程
任务执行器根据配置的调度中心的地址,自动注册到调度中心
达到任务出发条件,调度中心下发任务
执行器基于线程池执行任务,并把执行结果放入内存队列、把执行日志写入日志文件中
执行器消费内存队列中的执行结果,主动上报给调度中心
当用户在调度中心查看任务日志,调度中心请求任务执行器,任务执行器读取任务日志文件并返回日志详情
搭建xxl-jobxxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 (gitee.com)
使用docker搭建xxl-job12345678910111213docker search xxl-jobdocker pull xuxueli/xxl-job-admin:2.4.0docker run -d \ -p 8088:8088\ ...
Java反射:获取类字段(getDeclaredFields())
Java反射:获取类字段getFields()方法和getDeclaredFields ()方法1. 概念反射是Java中一种强大的机制,允许在运行时获取、检查和操作类、方法、字段等信息,而不需要在编译时知道这些信息。
其中字段(Field)在Java中是类中用于存储数据的成员变量。在反射中,可以通过Field类获取和操作类的字段。
getFields(): 该方法用于获取某个类及其父类中所有的公有字段。公有字段是指用public修饰的字段。
这个方法对于需要获取类的公有属性时很有用,例如在某些框架或通用库中。
getDeclaredFields(): 该方法用于获取某个类中声明的所有字段,包括公有、私有、受保护的字段,但不包括继承的字段。
这个方法对于需要获取类的所有字段时很有用,尤其是在进行一些高级的操作时。
2. getFields()12345678910111213141516171819202122import java.lang.reflect.Field;public class GetFieldsTest1 { class User ...