- 博客(36)
- 收藏
- 关注
原创 从零开始构建SSD网络实现目标识别项目
前言:-- 由于此项目全过程过于繁杂,我前后做了三四个月,无法把所有内容融入这一篇文章之中,所以本文以逻辑串联为主,记录了我从零开始,构建vgg 300网络 -> 构建 SSD模型 -> 数据标注 -> 训练以及训练模型保存 -> 恢复模型进行预测 的全过程-- 本文提供了一些核心代码,需要完整的代码,或者有任何问题的,可以私信我或者等候后续有时间再上传到github-- 想读懂本文需要的基础:神经网络基础、CNN基础、VGG基础、语义分割基础、实例分割基础、YOLO原理等
2020-05-14 17:09:30 1146
原创 AGI技术与原理浅析:曙光还是迷失?
回顾以往博客文章,最近一次更新在2020-07,内容以机器学习、深度学习、CV、Slam为主,顺带夹杂个人感悟。笔者并非算法科班出身,本科学制药、研究生学金融,最原始的算法积累都来源于网络,当时更新博客的缘由无非是“取自网络、用于网络”。自2022年12月ChatGPT横空出世,毅然投入“AGI”大军,对大语言、多模态、RAG、Agent多有涉猎,并希望通过继续更新博客,影响更多同好共同奔赴“AGI 终局”。
2024-05-24 18:00:00 897
原创 智能驾驶基础理论总结
如果把汽车作为一个刚体,设计汽车的自动驾驶系统将会设计到刚体运动、李群、李代数等知识...本文即是对这些知识进行简单归纳总结。一、刚体运动1、一个刚体(汽车)在三维空间是如何运动的,这涉及到以下知识:-- 旋转矩阵、四元数、欧拉角的意义,以及它们是如何运算和转换的-- 线性代数库 Eigen2、刚体运动可以拆解为两个部分来描述:旋转和平移-- 旋转可以由旋转矩阵R表示,平移由平移向量t表示,旋转和变换可以用变换矩阵T表示二、旋转矩阵与旋转向量1、旋转矩阵为正交阵,它的逆
2020-08-01 17:36:21 1238
原创 一文讲清楚梯度下降算法
一、随机梯度下降与经典梯度下降 1、经典梯度下降 经典的梯度下降法采用所有训练数据的平均损失来近似目标函数 可以看到每更新一次梯度,就需要计算所有训练数据-- 当M很大的时候,这需要很大的计算量,耗费很长的计算时间2、随机梯度下降 随机梯度下降法(Stochastic Gradient Descent,SGD)用单个训练样本的损失来近似平均损失随机梯度下降法用单个训练数据即可对模型参数进行一次更新,大大加快了收敛速率-- 该方法也非常适用于...
2020-07-07 17:58:49 1045
原创 优化算法探究
一、优化算法简介 1、机器学习的本质就是模型表征 + 模型评估 + 优化算法2、优化算法的作用优化算法所做的事情就是在模型表征空间中找到模型评估指标最好的模型-- 不同的优化算法对应的模型表征和评估指标不尽相同 -- 比如经典的支持向量机对应的模型表征和评估指标分别为线性分类模型和最大间隔 -- 逻辑回归对应的模型表征和评估指标则分别为线性分类模型和交叉熵" 3、凸优化与非凸优化 凸:指的是顺着梯度方向走到底就一定是最优解。-- ...
2020-07-03 17:25:36 918 1
原创 主题模型--频率派与贝叶斯学派之争始末
一、词袋模型/N-gram模型的明显缺陷 这两个模型最大的缺陷就是无法识别出两个不同的词或词组具有相同的主题,造成这个缺陷的可能原因:-- N-gram模型是基于马尔科夫网络-- 中心词只和前N个词或者后N个词有关系-- 中心词是具体的词,因此两个不同的中心词就是不同的团,自然就认为是两个不同的主题二、PLSA 1、一个用生成模型来建模文章的生成过程,具体文本生成过程如下:-- 假设有K个主题,M篇文章-- 对语料库中的任意文章d,假设该文章有N个词-- 则对于其中...
2020-07-02 18:02:47 432
原创 探究MaxEnt模型与LR模型在原理上的统一
一、什么是概率图模型1、概率图模型分为两大类 贝叶斯网络-- 贝叶斯网络用一个有向图结构表示马尔科夫网络-- 马尔科夫网络用一个无向图的网络结构表示2、概率图模型有哪些概率图模型包括了朴素贝叶斯模型、 最大熵模型、隐马尔可夫模型、条件随机场、主题模型等,本文要讲的最大熵模型即是属于概率图模型中的马尔科夫网络二、什么是马尔科夫网络1、马尔科夫模型的数学推导2、马尔科夫模型中的参数解释C:为图中最大团所构成的集合-- 对于图中所有节点x={x1,x...
2020-06-30 22:07:59 919
原创 无监督学习的简单统一
一、聚类与EM算法 1、以聚类为例讲清楚EM-- 首先EM算法应用于概率模型-- 是概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐性变量-- 假设聚类模型的输出y=f(θ,z,x) -- θ是模型参数,决定x的分布 -- x是输入数据,是可观察变量 -- z是隐含变量,即是类簇中心那E步就是:-- 假设一个初始的模型参数θ0,代入模型中,表示出初始的z -- 通俗一点说就是假设出θ然后估计出初始的类簇中心 -- 比如...
2020-06-28 17:58:40 973
原创 从奥卡姆剃刀定律再看决策树
一、决策树理论1、一句话总结决策树 -- 决策树是一种自上而下,对样本数据进行树形分类的过程-- 由结点和有向边组成2、决策树结点-- 决策树结点分为:内部结点、叶子节点-- 每个内部结点表示一个特征或者属性-- 叶节点表示类别3、决策树分类过程描述 -- 从顶部根结点开始,所有样本聚在一起。-- 经过根结点的划分,样本被分到不同的子结点中。-- 再根据子结点的特征进一步划分-- 直至所有样本都被 归到某一个类别(即叶结点)中。4、决策树应用 ...
2020-06-19 17:06:04 752
原创 不忘初心——找找LR算法数学原理中的几个小彩蛋
不论是机器学习,还是深度学习,最有意思的部分就是从它的数学原理推导中,发现隐藏的彩蛋。相信绝大部分人的机器学习算法的入门都是从LR开始,LR可以说是最简单、最直观的算法,但往往最简单的东西会隐藏着最深刻的道理,所谓大道至简,莫过于此了。一、LR处理的是分类问题,线性回归处理的是回归问题首先回顾下分类和回归在教材中的定义:【分类】即是对离散值的预测【回归】即是对连续值的预测然后再回顾下线性回归:-- 比如 y=θTx+ξ-- 利用(x,y)点的集合,固定θ进行近似求解,最终估计出最优
2020-06-17 22:48:16 344
原创 神经网络超参数调优中贝叶斯定理深究
神经网络中,常见的超参数调优方法有:网格搜索、随机搜索、贝叶斯优化以及谷歌的面包烘焙算法(未开源),本篇文章主要讨论贝叶斯优化算法和贝叶斯定理之间的关系一、网格搜索-- 网格搜索可能是最简单、应用最广泛的超参数搜索算法,它通过查找搜索范围内的所有的点来确定最优值。二、随机搜索:-- 随机搜索的思想与网格搜索比较相似,只是不再测试上界和下界之间的所有 值,而是在搜索范围中随机选取样本点。-- 它的理论依据是,如果样本点集足够大,那么通过随机采样也能大概率地找到全局最优值,或其近似值 ...
2020-06-12 16:54:09 1492
原创 SLAM入坑邀请
很多人对SLAM很恐惧,因为我相信很多人和我的学习路径一样:高等数学->数据结构->C语言->java/python->leetcode算法->大数据->机器学习->深度学习->NLP/CV->SLAM或许你停在了哪一步,然后开始深入研究这一部分的内容又或许有人和我一样,一直走了下来,走到了SLAM的门口,但犹豫许久不敢入门这篇文章的作用或许就是能将我的入门经验分享给你,然后多骗一些人和我共同进行SLAM的学习,独入坑不如众入坑。一、什么
2020-06-10 23:00:18 317
原创 神经网络剪枝新思路
一、典型的剪枝算法分为三个步骤1、训练(大型模型)2、剪枝(prune)3、微调(finetune) 二、我想提倡的观点自动剪枝算法的价值可能在于识别高效结构、执行隐性架构搜索,而不是选择「重要的」权重论文地址:https://openreview.net/forum?id=rJlnB3C5Ym因为按照传统的剪枝模型-- 首先训练一个过参数化的模型-- 然后继承这个模型的参数,进行权重剪枝(按权重绝对值筛选)-- finetune这个模型但该论文作者经过实验发现:-...
2020-06-03 17:36:35 1773
原创 随手记:Lucas–Kanade光流算法中一个关键问题的讨论
我的光流法入门文章是这一篇:https://www.cnblogs.com/gnuhpc/archive/2012/12/04/2802124.html光流的概念:(Optical flow or optic flow) 它是一种运动模式,这种运动模式指的是一个物体、表面、边缘在一个视角下由一个观察者(比如眼睛、摄像头等)和背景之间形成的明显移动。光流技术:如运动检测和图像分割,时间碰撞,运动补偿编码,三维立体视差,都是利用了这种边缘或表面运动的技术。 二维图像的移动相对于观察者而言是三维物体移动的
2020-06-02 22:37:26 263
原创 视频异常行为检测网络
对视频中的异常行为进行检测十分有用,比如可以通过监控视频分析流水线车间或者实验室中的异常行为,这是一类比较简单的情形。因为在流水线车间,设备使用正确,衣着装备佩戴正确就是正常,否则就是异常。在实验室中,穿工作服就是正常,没穿就是异常。针对这种情形,设计方法一。方法一:基于YOLO的二分类异常行为检测 此方法其实就是强行把异常行为进行二分,此方法只可以应用于特殊场景:-- 比如在实验室,穿了实验服就是正常,没穿就是异常-- 或者在流水线,戴头盔就是正常,没带就是异常-- 这种方法的...
2020-05-26 22:06:02 8019 2
原创 LSTM怎么用于实际项目
最近由于项目需要,需要使用LSTM进行时间序列预测,由此通过这篇文件,回忆并总结下LSTM的一些关键性问题。一、LSTM原理:1、一句话总结LSTMLSTM即是长短期记忆网络2、LSTM中门和时间步门和时间步的概念 -- LSTM的中有四个门,每个门负责是否把短期记忆纳入长期记忆中(或者说负责将短期记忆的某一部分是否纳入长期记忆) -- 每个时间步,都是网络的一个...
2020-05-07 15:30:17 1573
原创 使用slim模块中的resnet模型
1、slim模块简介slim是一个使构建,训练,评估神经网络变得简单的库:-- 它可以消除原生tensorflow里面很多重复的模板性的代码,让代码更紧凑,更具备可读性。-- 另外slim提供了很多计算机视觉方面的著名模型(VGG, AlexNet等),我们不仅可以直接使用,甚至能以各种方式进行扩展。2、使用slim库进行模型定义with slim.arg_scope(nets.r...
2020-01-19 23:50:44 1452
原创 CV感悟:YOLO与R-CNN的比较
一、首先理解下“一步法”和“两步法”two-stage方法,如R-CNN系算法即是两步法: -- 第一步选取候选框 -- 第二步对这些候选框分类或者回归one-stage方法,如Yolo和SSD即是一步法: -- 其主要思路是均匀地在图片的不同位置进行密集抽样 -- 抽样时可以采用不同尺度和长宽比,然后利用CNN提取特征后直接进行分类与回归 -- 整个过程只需要...
2019-12-23 11:49:40 7985
原创 循环神经网络之LSTM
1、从LSTM的经典图入手可以看到中间的 cell 里面有四个黄色小框:-- 每一个小黄框代表一个前馈网络层,其实就是经典的神经网络的结构-- 这个cell神经元个数和隐藏层个数皆可以设置-- 其中1、2、4层的激活函数是 sigmoid,第三层的激活函数是 tanh。2、对LSTM的理解1)、cell 的状态是一个向量,是有多个值的-- cell在t时刻的状态即是ht...
2019-12-19 16:24:50 887
原创 代码实例讲解:卷积神经网络程序细节(附完整代码)
1、导入数据集和tensorflow包from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tf2、初步探索mnist数据集的内容此处使用mnist数据集,如果需要用自己的数据集,将数据读入pandas的dataframe中即可;mnist = input_data.read_...
2019-12-11 17:21:40 13369 8
原创 推荐系统 - 多目标模型融合部分
1、线性加权融合法 既是给不同的模型加权,让不同模型融合在一起有两种加权方式: 1)、权值参数固定,给不同的场景设定不同的权重参数,给不同的特征设定不同的参数 适用于特征数量少,预测结果可观察的情况; 修改权重参数的方法是观察结果直接修改; 2)、动态参数法,既是使用wx+b,利用损失函数,训练w 实施步骤: -- 1、原始数据 -...
2019-12-11 09:36:55 4646
原创 代码实例讲解:解析全连接神经网络的程序细节(附完整代码)
1、导入数据集和tensorflow包from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tf2、初步探索mnist数据集的内容此处使用mnist数据集,如果需要用自己的数据集,将数据读入pandas的dataframe中即可;mnist = input_data.read_...
2019-12-10 15:47:32 2733
原创 怎么做好一个深度学习调包侠
1、到底是选择Adam还是SGD优化器 选Adam的好处Adam傻瓜式,可以无视学习率-- 收敛速度快选SGD的好处SGD适合要求高的模型-- 精度高-- 一般从一个较大的学习率进行训练最优选择:Adam+SGD-- 可以先用Adam粗调,然后使用SGD精调2、Momentum优化器也有很大作用 面对小而连续的梯度但是含有很多噪声的时候,最先使用这个-...
2019-12-09 15:59:20 960
原创 推荐算法与协同过滤原理简析
1、什么是推荐算法大家可以回想一下,如果你需要向别人推荐件物品,常用的方法是什么:有个东西,我之前用过很好用,推荐你用 -- 基于用户推荐有个东西,用的人很多,推荐你用 -- 基于热度有个东西,你之前好像用过,推荐你用 -- 基于时间线...由上面例子可知,无论什么推荐,第一步需要有你心目中物品的重要性 -- 即是排序然后,你可能选择其中一种规则来进行推荐某一些物品 --即是召回...
2019-12-09 09:59:11 212
原创 kafka、zookeeper一文看懂
Yarn的重点知识:Yarn相信大家用的比较多,本文的重点不是讲yarn,因为Yarn作为hadoop集群的总统山级别的组件,不是一下子可以完全讲清楚的,暂时简单介绍下面几点:1 ResourceManager 资源管理、协调2 Standby ResourceManager RM的从节点,备用节点3 NodeManager 负责节点上任务的调配...
2019-12-06 09:59:22 326
原创 语义分割及前沿常用网络解析
1 语义分割和实例分割的辨析 语义分割 -- 是给每个像素打上类别标签,进行语义分割之后,可以知道每个像素的类别; 实例分割 -- 是给每个实例画上边界,进行实例分割之后,可以知道每个实例的形状" 2 基于深度学习的语义分割方法原理 基本步骤:图片 -> 编码/池化 -> 解码/上采样,从而将标准 CNN 编码器扩...
2019-12-03 17:28:26 471
原创 hadoop、hive、spark、hbase综述
hadoop综述1 namenode 一般在master节点上,用来存储文件和目录的所有元数据信息 常见面试问题:"namenode和datanode可以在同一个节点吗?" -- 原理上可以在一个节点,但是这样做有很多弊端,比如datanode是数据的实际执行节点,对资源的占用会影响namenode节点的性能;2 datanode 一般在...
2019-12-03 09:39:09 483
原创 Python的链表、树、图等数据结构
一、python实现链表,并实现链表的增删改查1、python中没有现成的这种数据类型,所以我们需要实现一个Node类来定义这种数据结构2、定义SinCycLinkedlist作为链表的构造类,可以实现链表的增删改查;#!/usr/bin/env python# -*- coding: utf-8 -*-class Node: def __init__(self, ini...
2019-12-02 22:12:28 929
原创 文本特征抽取与处理
一、NLP的文本表示既是语言模型(language model),是我们分析的入口。1、统计语言模型的目的:-- 建立一个能够描述一句话、一个词的概率估计方法2、语义模型的基础模型:-- P(W1W2W3...WI) = 累乘(P(W1)P(W2|W1)P(W2|W2W1)...)3、语义模型的概率估计(一句话一个词组在一起的概率,比如W1W2W3)-- 基于对数似然-...
2019-12-02 16:44:03 317
原创 LR、SVM、softmax对比分析
一、LR1、原理解释既是逻辑回归,所谓逻辑回归,即是将wx+b传入sigmoid函数,计算交叉熵,然后向交叉熵小的方向调整w。以交叉熵为损失函数,交叉熵使用计算值和真实值的差来调整参数矩阵W,当误差越大,梯度就越大,参数w调整得越快,训练速度也就越快。损失L(即是交叉熵)计算:2、公式解释其中h(x)即是sigmoid(x)的意思,是一个 0-1 之间的数,可以表示样本x的...
2019-11-29 10:08:02 618
原创 朴素贝叶斯、K-means、混合高斯模型为什么不适用于多特征关联挖掘
一、朴素贝叶斯1、基本原理这个算法的名字已经解释了这个算法所做的事情,朴素和贝叶斯。朴素的意思是说,这个算法将样本中的每个特征都当作独立的,互不关联的个体。贝叶斯概率相信大家都知道,即是用几个已知的条件概率,来求出未知的条件概率。2、朴素贝叶斯算法实现伪代码:1、对于某个样本x = {a1,a2,...,am}2、有类别集合C = {y1,y2,...,yn}3、计算...
2019-11-28 11:29:53 1367
原创 SVM算法逻辑推导与使用实例
注意:阅读本文前,需要读者先对SVM的基本原理有个简单了解,对python编程也有简单了解。一、SVM和神经网络的区别SVM,即是支撑向量机,在小规模样本的模式识别中,效果良好,而且这个方法的立论、假设、推导、证明等步骤完整,逻辑严密,可解释性很强。神经网络一般用于大规模语音、视频、图像等数据样本的模式识别,但神经网络每一层具体干了什么事,每一层提取的特征代表了什么含义都很难解释,在一...
2019-11-26 11:25:58 831
原创 决策树原理推导与使用
一、初步理解决策树首先要理解什么是树自然界中的树是由根节点和叶子节点组成;算法中最简单的树结构:二叉树,左子树所有节点的值均小于等于根节点的值,右子树的所有节点值均大于等于根节点值;讲这两个的目的是为了让大家理解,决策树其实也是做了一样的事情,他反复的在根节点判断,哪些样本该去左侧子树,哪些样本该去右侧子树,直到左侧子树和右侧子树都变成了叶子节点;根节点什么是根节点,根节点是每一个...
2019-11-21 11:46:43 695
原创 最小二乘法逻辑推导与使用代码实例(pysaprk)
一、最小二乘法来实现协同过滤的原理假设有一个m*n的评分矩阵A,既是n个用户对m部电影评分,元素Aij既是第i个用户对第j部电影的评分。使用最小二乘法,既是将一个稀疏的m*n评分矩阵拆分为两个秩更低的矩阵:U(m*k),V(n*k),用这两个矩阵的乘积,来近似表达这个得分矩阵;这样做的好处是将整个矩阵的自由度m*n转成(m+n)*k;所谓矩阵的自由度,既是矩阵中参数的个数,这样拆分...
2019-11-18 09:36:41 512
原创 PCA原理解析及应用指南(pyspqrk版)
PCA原理解析及应用指南(pyspqrk版)之前虽然也用过PCA方法来降维,但只注重代码,没有注重原理,趁这次研究唐老师论文《企业特征和中国股市》的机会,深入研究下这个经典降维方法的前世今生。一、协方差矩阵是什么要理解PCA,需要理解的第一个概念就是:协方差。协方差可以从方差来理解,方差考察的是每个样本的值与所有样本均值的相关性,而协方差既是站在不同维度上,考察两个不同维度样本的相...
2019-11-15 17:29:32 518
原创 CNN训练细节:卷积核分解
背景:最近看到一些分解卷积层的方法,比如三个3×3的卷积层替代一个7×7的卷积层,或者两个3乘3的卷积层替代一个5×5的卷积层,本文主要是个人粗浅的分析下原因一、两个3乘3的卷积层替代一个5×5的卷积层经典原理网图:如图所示:对于两层3×3的卷积层而言最上面一层的3×3卷积层,每个1×1区域的感知野都是3×3第二层的3×3卷积层,每个1×1区域的感知野还是3×3所以两...
2019-08-01 11:16:02 2661
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人