自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 问答 (1)
  • 收藏
  • 关注

原创 浅谈Attention注意力机制

Attention注意力机制注意力机制模仿了生物观察行为的内部过程,即一种将内部经验和外部感觉对齐从而增加部分区域的观察精细度的机制。例如人的视觉在处理一张图片时,会通过快速扫描全局图像,获得需要重点关注的目标区域,也就是注意力焦点。然后对这一区域投入更多的注意力资源,以获得更多所需要关注的目标的细节信息,并抑制其它无用信息。这种机制普遍使用与cv和nlp的相关领域,事实证明确实有很大的...

2020-01-29 21:59:25 2321 1

原创 集成学习 (投票分类器 & bagging/pasting & RandomForest & Boosting)

集成学习本文主要介绍voting (投票学习器)bagging / pasting3.随机森林boosting1.集成学习概述1.1 概述集成学习通过结合多个单一学习器,并聚合其预测结果的学习任务,也可以称作多分类系统等,下面是集成学习的概要图:单一的学习器可以被称为个体学习器,聚合的过程对应结合模块根据学习器是否一致可以分为 同质 和 异质同质集成中的个体学习...

2020-01-15 19:39:11 7690 2

原创 决策树原理解析

决策树原理解析1.决策树算法以及基本流程决策树是基于树结构进行决策的,其机制就是通过判定每个属性分类的纯度来进行自上而下决策分类决策树包含 根结点 ,内部结点, 叶结点; 根结点和内部结点对应与分类的属性(也就是分类的基准),叶结点对应决策结果(也就是纯度很高且不需要继续分裂的类别);从根结点到某一个叶结点的路径便是当前叶结点对应类的整个决策过程,下面来看决策树的算法流程:可以看到决...

2020-01-10 20:39:06 3272

原创 协同过滤推荐 -- 基于行为相似的召回

1.推荐计算 — UserCF & ItemCF源码代地址:Movielens_Recommend1.1 基于用户的协同过滤(UserCF)中心思想:基于用户对物品的偏好找到相邻用户,然后将相邻用户喜欢的物品推荐给当前用户1.1 计算向量: 将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度1.2 根据相似度找到K个相邻用户之后,根据相邻用户的相似度权重以及他们对...

2020-01-07 20:32:20 940

原创 贝叶斯分类 & 朴素贝叶斯分类

该博客摘自周志华-机器学习,有加入自己的感悟,一方面作为学习的笔记,再者有基于此做一些实际的思考1. 贝叶斯分类贝叶斯策论是概率框架下实施决策的基本方法,适用于各种分类任务;简单聊一下 先验 和 后验 概率:条件: 今天风大/小(用A表示该事件)结果:是否可以骑行(用B表示该事件)那么: 先验概率就是 P(A)P(A)P(A),后验概率就是 P(A∣B)P(A|B)P(A...

2019-11-19 16:45:15 557 1

原创 python中张量的广播机制详解 -- 附实例

python中张量运算的广播机制在python中,尤其是深度学习方向,在构建网络过程中,初始化参数会频繁用到下面来看下广播的原理:如果两个数组的后缘维度(从末尾开始算起的维度)的轴长度相符或其中一方的维度长度为1(但是其他维度必须相同),则认为它们是广播兼容的。广播会在缺失维度和(或)轴长度为1的维度上进行。1.后缘纬度相同进行广播(后缘纬度就是从后开始对比矩阵维度,要求相同) ...

2019-11-13 17:50:12 804

原创 深度学习--- GAN网络原理解析

Generative Adversarial Network对抗生成网络,这是当下机器视觉比较热门的一个技术,由两部分组成生成器(GnetG_{net}Gnet​)和判别器(D_{net})组成GAN区别与传统的生成网络,生成的图片还原度高,主要缘于D网络基于数据相对位置和数据本身对realrealreal数据奖励,对fakefakefake数据惩罚的缘故1.GAN思想 & 与单个...

2019-10-16 20:32:45 5643

原创 深层神经网络前馈 && 反向传播

学习深度学习,深层神经网络是一个绕不过的话题,包括其前向以及反向的计算过程是很有必要搞清楚,这样对于之后的调参,以及梯度消失 & 爆炸的处理会很有帮助;所以立足于此,尽可能详细的阐述其前向 & 后向的计算过程:1.为什么使用深层神经网络2.深层神经网络的 前向 & 反向 计算过程详解1.为什么使用深层神经网络1.1 神经网络神经网络,顾名思义就是模拟大脑皮层,从...

2019-08-09 18:14:41 670

原创 深度学习计算图&计算图求导过程&向量化

深度学习中,计算是核心部分,所以一直在致力于提供算法网络的计算能力,比较基础的两种优化形式有:1.将计算过程做为一个计算图来进行运算,每个计算过程用节点来模拟,这样的好处可以分割运算,甚至可以多线程,多gpu开session来进行运算2.向量化:以tensorflow为例,进行向量化的运算,由于python独有的广播机制,向量化运算不需要显式的for循环,可以大大提高运算速度下面具体来看...

2019-07-31 22:04:47 2469 1

原创 Logistic逻辑回归(sigmod二分类)成本函数推导 && 及其梯度下降

logistic逻辑回归是比较常用的二分分类,其激活函数适用于各种二分类场景,但是其函数在t极大或者极小的时候趋于饱和会引发梯度消失,进入影响网络调参使得函数不能很好的收敛有兴趣的同学可以参阅我的上一篇博客,来参看梯度消失&爆炸的原理:https://blog.csdn.net/soullines/article/details/94399187下面来看基于sigmod激活函数的og...

2019-07-31 21:54:51 2276

原创 信息论和交叉熵损失函数

在机器学习和深度学习中,很多时候需要进行分类,这时会涉及到决策边界,比如sigmod激活函数;但是当面对多分类的时候(比如经典的MNIST),我们需要预测每一个种类output的概率,比如softmax,这时候我们需要对:信息论和交叉熵有一个清晰的认识那么我们的文章将会对 信息论和交叉熵损失函数 进行一个讲解;1.信息论2.自信息3.香农熵4.交叉熵 1.信息论1.1 信息论是从...

2019-07-17 19:06:07 1044

原创 梯度消失 & 梯度爆炸

神经网络(DNN)其实就是人工神经网络(ANN)的多层实现,一个ANN有2个或者2个以上的隐藏层,则被称为深度神经网络(DNN),下面的内容我们会针对神经网络反向微分过程中产生的梯度爆炸和梯度消失,以及当前有效的缓和方法做一些具体的论述;**当然有兴趣的同学建议自己去推导神经网络反向传播BP算法的推导 **1.神经网络2.梯度消失 & 梯度爆炸3.缓和梯度消失 &...

2019-07-01 23:46:51 7592 5

原创 从标准方程,梯度下降窥探机器学习训练原理

机器学习的学习不应该仅仅停留在对scikit-learn or tensorflow(deep learning)框架的调用,而应该着眼于内部的世界,学习机器学习有一段时间了,有必要回头整理一下,下面我们基于线性模型来看标准方程梯度下降进而来看基于以上两者如何实现模型的训练,基本思想一致,不同的模型大家可以触类旁通下面我们分布阐述1.标准方程2.梯度下降3.机器学习模型训练过...

2019-06-19 15:32:40 381 2

原创 Machine Learning & 概率 & 随机变量 & 概率分布 & 事件的独立性

概率于Machine Learning而言还是比较重要的,但是概率的难点在于,其不够直观,那么换一个视角,我们称之为"上帝视角",将概率转化为面积,这样便会变的直观;1.概率的定义概率,顾名思义就是某事件发生可能性的一种量化,这是我们最直观的感受;下面从一个比较经典的案例来作为引入 — 蒙提霍尔问题:有ABC三扇门,其中有一扇是正确的门,打开有一辆豪车,其余两扇,门为错误的门,门内...

2019-06-05 19:29:01 464

原创 TypeError: sequence item 2: expected str instance, tuple found

学python大概有一段时间了,今天准备通过博客来记录一些bugerror:TypeError: sequence item 2: expected str instance, tuple found下面看代码L = []L.append(r'<?xml version="1.0"?>')L.append(r'<root>')L.append(encode(...

2019-03-07 20:42:51 7032

原创 Android组件化 -- 完全解耦实践方案

首先粘贴源码地址,欢迎frok,欢迎start源码地址目前,Android 组件化普遍使用于移动开发,但是组件化的初衷是为了解耦代码,并行开发效率;小型app似乎会care不到,完全解耦的组件化会在app越来越臃肿的时候带来很大的提升;####1.组件化介绍ok,那么我们需要知道完全解耦的组件化框架应该注意哪些点:主app只加载业务组件,不可调用组件;组件与组件之间不存在调用关系;...

2018-11-07 16:15:29 4723 2

原创 android中的binder机制

在android跨进程通信中binder必不可少,从Activty的启动源码就可以看到Activity的周期控制就是ActivityThread和AMS之间的binder跨进程通信,谈到binder机制就绕不过AIDL;下面开始介绍;1.AIDL代码实例2.AIDL源码3.AIDL图解1.AIDL代码实例项目地址首先要了解binder机制,b必然绕不开AIDL;那么...

2018-07-03 17:42:37 335

原创 android分发机制---- 源码解析

android中分发机制在自定义的View中尤为重要,贯穿android Activity – ViewGroup – View的Event传递;为了提高理解,我们分部阐述1.android分发机制概述 2.图解 3.android源码1.android分发机制在android中Event是自上而下分发的:Activity —-> ViewGroup —-&...

2018-06-25 23:25:19 256

原创 java中枚举优先使用

java 1.5之后出现枚举类型,枚举类型的出现为开发者提供类型安全的检测和提高可读性;当然枚举的使用有一个缺点就是相比于int定义的标志位,装载和初始化枚举时会有空间和时间成本;所以除了小型终端,实践中不必太在意这个问题;1.int枚举模式和String枚举模式的局限性:1.1 int枚举在java开发中,经常会使用常量来定义一些标志位之类的情况;比如在下面程序中,...

2018-06-21 16:08:51 815

原创 java中优先考虑泛型----禁止数组类型的未受检转换和禁止标量类型(Effective java code)

Effective第26条中有提到优先考虑泛型,但是由于java会设计到数组所以会有泛型兼容数组的问题;首先泛型不应该与数组复用,但是java的历史原因,泛型的问世比较晚,必须兼容旧版本代码!所以有些情况必须拒绝受检!!!!我们以stack为例: 在泛型没有问世之前是这样的:public class Stack { private Object[] element...

2018-06-14 16:18:44 339

转载 Android进程的内存管理分析

本文转自:http://blog.csdn.net/gemmem/article/details/8920039最近在网上看了不少Android内存管理方面的博文,但是文章大多都是就单个方面去介绍内存管理,没有能全局把握,缺乏系统性阐述,而且有些观点有误。这样对Android内存管理进行局部性介绍,很难使读者建立系统性概念,无法真正理解内存管理,对提高系统优化和系统稳定性分析方面的能力是...

2018-06-11 15:51:23 1214

原创 Fresco的使用:重而多能的android 图片框架:

Frsco是facebook推出的android 图片框架,相对于glide,imageLoader而言具有更加完备的生态,但是介于其较其他图片框架中,在非以图片展示为主的application,这里并不建议用;但是不得不说Fresco是一个优秀的图片框架; Fresco官网地址:https://github.com/facebook/fresco1. 代码依赖de...

2018-06-11 14:50:22 353

原创 android studio 编译:Could not find common.jar (android.arch.core:common:1.0.0)

在编译android studio时候会出现这样的bug:Error:Could not resolve all files for configuration ':androidsort:debugCompileClasspath'.> Could not find common.jar (android.arch.core:common:1.0.0). Searched i...

2018-06-08 15:21:23 1455

原创 java泛型:擦除/桥方法/协变(不要在新代码中使用原生态类型) ---- effective java notes

在java中,声明一个或者多个类型参数的类或者接口就是泛型;泛型是java 1.5之后出现的,在我看来比较划时代,一部分java 开发者会体会到,无论在表述还是安全性的方面,泛型的出现解决了Object的尴尬;泛型的使用域比较广,这里不做赘述,主要围绕 协变 , 擦除 , 桥 进行解释1.泛型优于原生态类型泛型是指明类型,或者使用?作为无限通配符的类或者接口,如:...

2018-06-07 15:39:52 488 1

原创 java实现:查找字符串中最长回文子串 ---- leetCode notes

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. 提供一个字符串s,找出其最长的回文子串所谓的回文子串就是正序反序均一直的字符串,当然也可以这样理解: 选定字符串s,以其中轴为中心线,然后左右...

2018-06-07 11:04:17 2608

原创 java中访问修饰符:private,public,protected

在java中出于封装,解耦,还有类的安全性考虑,通常会用修饰符来修饰成员,方法,还有相关的域;下面简单来看下private,public,protected,比较基础,但是也比较重要1.public —- 在任何地方都可以访问改成员public是我们开发中比较常用:在static中直接可以 类名.function 来调用通常情况下,会使用实例化对象来调用 对象.fun...

2018-05-28 16:55:21 631 1

原创 Vue: method/computed/watch的使用和区别

vue作为一个轻量级高性能的前端框架,还是比较易上手的,下面来以一个java开发者的角度来看method/computed/watchmethods在vue中method就是普通意义的function域,可以定义方法来进行属性的修改,或者返回,很简单下面来看例子:<template> <p>{{msg}}</p> <

2018-05-25 11:23:09 9583

原创 OkHttp源码分析----拦截器链

在上一篇中对OkHttp源码的流程梳理了一遍,当然留了一个尾巴:OkHttp通过拦截器返回reponse响应,进而完成整个http请求工作; 接下来我们来探讨分析OkHttp中的拦截器链:首先再续前缘,为了读者更好的理解,有必要上图以及粘贴OkHttp请求网络的源码请参考OkHttp源码分析—- 图解源码 + 源码解析 注意看红框中的部分,在OkHttp后期,由拦截器链...

2018-05-16 12:17:10 641

原创 OkHttp源码分析---- 图解源码 + 源码解析

OkHttp到Retrofit + OkHttp再到hongyang大神的OkHttpUtils,OkHttp对于android的网络框架至关重要,之前在博客中有对OkHttp2.x 到OkHttp3.x使用及其源码进行过剖析 okhttp 2.x 用法/封装 Okhttp3使用 + 源码完全解析 但是相对于其他框架OkHttp的源码较多,需要有清晰的逻辑线来理解,当然前...

2018-05-16 00:55:52 1292

原创 多个构造器时考虑用构建器:javaBeans模式可能处于不一致性 ------- Effective java source

在 Effective java中有看到介绍遇到多个构造器时考虑用构建器中有一个javaBeans模式致命缺点是不一致性,同时与之相关带来线程安全问题;本篇立足于Effective java来进行清晰的探讨;1. 重叠构造在java中比较基础的是构造器来初始化,作为程序员习惯使用重叠构造模式,当传入一个参数的构造时候,第一个有一个必选参数,第二个有一个必选参数和一个可选参数,...

2018-05-08 15:44:02 1477 3

原创 Glide 源码解析 ----- android source code for Glide 4.x

作为google主推的一款图片加载框架,从glide3.x 到glide4.x加入apt的注解编译;详细的使用可以详见官方文档 [Glide v4] https://muyangmin.github.io/glide-docs-cn/首先来看Glide的基本使用: (1)支持Memory和Disk图片缓存。 (2)支持gif和webp格式图片。 (3)根据A...

2018-04-27 14:14:28 382

原创 Android中SharedPreferences源码分析

在android中,对于一些少量的数据,会使用SharedPreferences进行key–value的Sp存储,ok那么对于Sp我们的一些源码层的了解必不可少:首先,直接抛出Api来进行逐步的源码理解://存储数据 /** * 获取默认的Sp * name: context.getPackageName() + "_prefere...

2018-02-26 19:32:24 522

原创 android中属性动画---ValueAnimator源码探究

在android中特效的展示会用到各种各样的属性动画,所以下面来看下android中属性动画的源码,其实在我看来源码是熟悉api和实现相关代码最直接最有效以及最深刻的途径,废话不多说,进入正题:因为ObjectAnimator是继承自ValueAnimator,会有一些方法的使用覆盖,所以我们先来看ValueAnimatorValueAnimator首先 ValueAnimato

2018-01-30 19:23:41 594

原创 android Ipc----Binder<Aldl>源码分析

在android中进程与之间的通信最常用的是基于binder的Aldl(在ALDL中进行了一部分封装),所以使用起来比较方便首先来粘贴自己写的一个aidl的demo ,基于此进行源码的探究: 首先在android中service—-client之间的通信ok 下面 来看代码 :Service:Book.aidl:// Book.aidlpackage com.

2018-01-11 23:38:19 330

原创 GreenDao的基本使用(android数据库)

在android中,在有些数据量相对较大或者处于安全考虑的情况下,会使用android自带的数据库—-sqlite: 但是使用sqlite需要考虑到以下几点: 1.严格控制数据库资源的打开与关闭(db,cursor); 2.在遍历数据时候取到的是cursor要转化为list再使用 3.事务回滚,可以大大优化数据库的效率;在android开发中我们会遇到一些数据库,内部框架做

2017-11-01 18:51:38 753

转载 Android ListView与RecyclerView对比浅析--缓存机制

一,背景RecyclerView是谷歌官方出的一个用于大量数据展示的新控件,可以用来代替传统的ListView,更加强大和灵活。最近,自己负责的业务,也遇到这样的一个问题,关于是否要将ListView替换为RecyclerView?秉承着实事求是的作风,弄清楚RecyclerView是否有足够的吸引力替换掉ListView,我从性能这一角度出发,研究RecyclerView和ListView二

2017-10-26 14:44:31 544 1

原创 android中常用5种排序算法

在android中会经常使用一些算法来实现一些复杂的逻辑; 在这片博文中主要介绍五种算法: 1.选择排序; 2.插入排序; 3.快速排序; 4.合并排序; 5.堆排序;在看下面之前,需要注意:有的算法语言表述比较乏力,在看下面博文时候要注意力在代码之上以下代码亲测可用;1.选择排序从数组一端选择一个数组中的一个元素,通过比较对比取出最小值(或者最大值)放在a

2017-09-26 11:45:47 6597

原创 Okhttp3使用 + 源码完全解析

在使用过okhttp3之后,必然的一步当是对源码的研究 这样可以对其优劣和功能封装有一个全面详尽的了解 ok 下面粘贴okhttp3的核心代码(url暂时随意定义) OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() .url

2017-09-21 20:09:02 2395

原创 Java/Android设计模式<三> 代理模式

代理模式在我看来是android中最常见,比较重要的一个设计模式;代理模式实际上就是设置了一个新的对象(中介),也可以理解为真实对象的替身;1.代理模式的组成://抽象主题 真实主题和代理主题的共同继承的接口public interface Subject { void operation();}//真实主题public class RealSubject implements Subjec

2017-09-20 14:02:57 829

原创 深入浅出--Rxjava源码分析<一>

在之前的博客中简单介绍了Rxjava的使用和与Retrofit的API配合使用;那么在这里我们来看下Rxjava的源码;1.Observable–>(subscribe)Subscriber首先来看完整代码:Observable.create(new Observable.OnSubscribe<Drawable>() { @Override publ

2017-09-18 19:50:10 645

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除