机器学习
TaiJi1985
这个作者很懒,什么都没留下…
展开
-
Logistic回归 Python实现
Logistic回归Logistic函数f(x)=11+e−xf(x) = \frac{1}{1+e^{-x}} 其函数图像为: 绘图方法>>> import numpy as np>>> x = np.arange(-10,10,0.1)>>> y = 1/(1+np.exp(-x))>>> import matplotlib.pyplot as plt>>> plt.plot(x,y原创 2016-04-26 15:28:49 · 1057 阅读 · 0 评论 -
机器学习通俗入门-朴素贝叶斯分类器
问题为了方便对比,我们仍然拿手写识别Mnist这个数据集作为我们的实验的数据集。Mnist数据集[1,2] 中包含60000张手写数字图片,10,000 张测试图片。每张图片的大小为28*28,包含一个手写数字。下面是一些样本举例:我们希望实现这样一个分类器: 给定一张手写图片,分类器给出改数字属于哪个分类。(0-9共10个分类)贝叶斯公式P(A|B)=P(B|A)P(A)P(B)P(A|B) =原创 2017-06-24 11:34:00 · 2907 阅读 · 2 评论 -
支持向量机SVM 原理、推导与Matlab实现
1 内容本文首先介绍SVM的原理,随后给出SVM的公式推导、并使用Matlab的二次规划函数进行求解。2 SVM原理我们前面学过了线性回归和线性分类器。我们来回顾一下。2.1 线性回归线性回归试图找到一条线,让每个点在Y方向上离线越接近越好。就是说,每个数据点做一条垂直的线相较于回归直线,这些线段(图中红色线段)的长度的平方和最小就是要最优化的函数。如图。J(w,b)=∑i(wTxi+b−yi)2原创 2017-07-13 19:00:15 · 31014 阅读 · 7 评论 -
非线性约束极值问题 - 拉格朗日乘子法 方法与原理
动机非数学专业,只是用得到,所以学一下。问题描述首先来看一下非线性最优化问题,一般有这么几类。第一类: 无约束最优化问题找到一个合适的x,是的f(x)最小: minxf(x) \min_x f(x) 没有任何约束的最优化问题,这个一般解法有 梯度下降法、牛顿法、拟牛顿法等。第二类: 有等式约束的非线性minxf(x)subject to hi(x)=0i∈[1,n] \min_x f(x) \原创 2017-07-14 13:31:26 · 5765 阅读 · 1 评论 -
无约束非线性优化经典算法学习笔记
本博客仅为学习笔记。梯度下降法有函数x(θ)x(\theta) ,梯度下降法的迭代公式为: xk+1=xk−agk x_{k+1} = x_k -a g_k 其中gkg_k为x(θ)x(\theta) 在x_k点的导数。牛顿法当x为标量时 xk+1=xk−x′x′′ x_{k+1} = x_k - \frac{x'}{x''}当x为向量时: xk+1=xk−H−1kgkx_{k+1}原创 2017-07-09 12:59:03 · 1938 阅读 · 0 评论 -
支持向量机SVM 原理、推导与Matlab实现(2)-对偶问题
SVM原理请参见上一个博文 http://blog.csdn.net/taiji1985/article/details/75087742对偶问题什么是对偶问题,举一个例子。工厂在资源有限的情况下,追求利润的最大化。这个问题等价于 , 在某一个利润下,追求资源使用的最小化。 这就是对偶问题。SVM最优化公式回顾对于SVM,有这样的最优化公式min12wTw满足yi(wTxi+b)⩾1 \min原创 2017-07-14 18:20:27 · 3125 阅读 · 1 评论 -
Building your Deep Neural Network - Step by Step v5 作业 - Neural Networks and Deep Learning
终于做完了,放在这里。。。复习用Building your Deep Neural Network: Step by StepWelcome to your week 4 assignment (part 1 of 2)! You have previously trained a 2-layer Neural Network (with a single hidden layer). This w转载 2017-11-14 14:33:39 · 1099 阅读 · 0 评论 -
Deep Neural Network - Application v3
Deep Neural Network for Image Classification: ApplicationWhen you finish this, you will have finished the last programming assignment of Week 4, and also the last programming assignment of this course!原创 2017-11-14 16:45:30 · 1895 阅读 · 1 评论 -
TensorFlow 线性回归demo
在下面的demo中, 首先创建了使用 y=0.1x+0.3+randy=0.1x+0.3+randy=0.1x+0.3+rand 创建测试数据集。 创建tensorflow的变量,w和b,所谓变量就是能被优化的量。 建立计算图 y = w*x_data + b 计算误差,使用误差平方和。 创建优化器,并优化误差。在下面的例子中, y ,loss,train之类都是计算图的一个节点。...原创 2018-04-06 14:11:44 · 384 阅读 · 0 评论 -
坐标下降法(坐标上升法)matlab程序
起因因为求解SVM的最牛算法SMO算法,使用的时坐标下降法的思路,所以学习一下这个算法。方法某函数包含多个自变量,需要求这个函数的最大或最小值时,可以应用此坐标下降法(最小值)或坐标上升法(最大值)。其过程是,对每个自变量求偏导,交替的对每个自变量进行梯度下降(或上升法)。案例我们使用以下函数作为案例 z=f(x,y)=xe−(x2+y2) z= f(x,y) = xe^{-(x^2+y^2)}原创 2017-06-12 20:28:48 · 9018 阅读 · 5 评论 -
自动求导程序的设计与实现(Python)
动机作者 Yangtf最近一直在求各种导数,于是就想写一个自动求导的算法。 其实python中的theano就有这个功能,但想了想,思路不难,于是就动手实现了一个。本来想用c++实现了,但发现c++写各种问题,内存管理、操作符重载都不尽人意。花费了不少时间后,决定换语言。 Java是第一熟练语言,但不支持操作符重载,奈何? 于是转战python。 思路函数的表示将函数表达式表示为一个表达式树。那个这原创 2017-06-08 23:20:02 · 11719 阅读 · 5 评论 -
机器学习通俗入门-使用梯度下降法解决最简单的线性回归问题
动机一直以来,使用机器学习的算法都是用他人写好的类库,总觉得云里雾里的,弄不清楚到底怎么回事。今天实现了一个最简单的线性回归分析,觉得收货很大。纸上得来终觉浅,绝知此事要躬行。回归分析数据假设有一组数据,知道自变量和因变量的值,如下例:3.0000 10.00003.1000 10.30003.2000 10.60003.3000 10.90003.4000 11.200原创 2017-06-04 13:16:24 · 2835 阅读 · 2 评论 -
Keras源代码阅读-Dropout
Dropout层源代码dropout层在layer下的core.py中class Dropout(Layer): '''Applies Dropout to the input. Dropout consists in randomly setting a fraction `p` of input units to 0 at each update during training原创 2016-04-26 17:00:20 · 6185 阅读 · 0 评论 -
keras代码阅读-Activition层
Activition的功能对输入应用某个函数 (就是所谓的激活函数) 例子如下:from keras.layers.core import Activation, Densemodel.add(Dense(64))model.add(Activation('tanh'))上面的例子就应用了tanh这个函数。class Activation(Layer): '''Applies an ac原创 2016-04-26 19:29:09 · 1982 阅读 · 0 评论 -
keras代码阅读-relu函数
概述relu是激活函数的一种。很多地方说relu函数的公式就是: f(x)=max(0,x)f(x)= max(0,x)阅读了theano的代码def relu(x, alpha=0): """ Compute the element-wise rectified linear activation function. .. versionadded:: 0.7.1 P原创 2016-04-26 20:07:38 · 7608 阅读 · 0 评论 -
Python实现的KNN分类器
knn.py# -*- coding: UTF-8 -*-'''Created on 2016-4-24@author: Administrator'''import numpy as npimport operatorimport matplotlib.pyplot as plt#创建一个测试用的数据集def createDataSet(): X = np.array([[1原创 2016-04-24 15:25:08 · 1030 阅读 · 0 评论 -
matplotlib 绘图
matplotlib 绘图下面的例子是一个sin函数的例子 plot函数使用了两个参数x为横坐标向量,y为纵坐标向量import matplotlib.pyplot as ptimport numpy as npx = np.arange(0,5,0.1)y = np.sin(x)pt.plot(x,y)[<matplotlib.lines.Line2D at 0x7815630>]pt.原创 2016-04-24 15:38:52 · 540 阅读 · 0 评论 -
机器学习通俗入门-使用梯度下降法求解二分问题
回顾在前面的文章中介绍了使用梯度下降法解决回归问题。那么使用如何解决二分问题呢?问题现在有这么一个数据集 D=x,yD={x,y} 其中 xx 是观测到的数据,yy 是所属分类。我们想通过建立一个模型,给出x就能得到它的分类信息。数据集我们使用matlab造一个数据集出来。% 创建测试数据x1 = [normrnd(3,1,40,1) normrnd(3,2,40,1)];x2 = [nor原创 2017-06-05 21:46:12 · 1366 阅读 · 1 评论 -
机器学习通俗入门-Softmax 求解多类分类问题
$问题0-1分类问题解决将一个样本分配到A还是B的问题,总共只有两个类。而多类分类问题则包含多个类。Mnist数据集[1,2] 中包含60000张手写数字图片,10,000 张测试图片。每张图片的大小为28*28,包含一个手写数字。如图: 我们希望实现这样一个分类器: 给定一张手写图片,分类器给出改数字属于哪个分类。(0-9共10个分类)模型给出数据集 D={x(i),y(i)} D=\{x^{(原创 2017-06-06 16:27:11 · 4544 阅读 · 0 评论 -
多层神经网络与反向传播算法
感知机感知机就是我们前面学过的线性分类器加上一个激活函数。 线性分类器:v=wTx+b=(∑iwixi)+bv = w^Tx +b = (\sum_i w_ix_i)+b 如果用x⃗ =[1x1x2x3x4...xk]\vec x = [1 x_1 x_2 x_3 x_4... x_k] ,即使用x增广形式表示,那么可以用w⃗ =[bw1w2w3...wk]\vec w = [b w_1 w_原创 2017-06-26 17:00:27 · 2856 阅读 · 1 评论 -
使用Tensorflow实现两层神经网络(使用激活函数)
1 神经网络结构该神经网络由两层神经网络构成, x(1) - >hidden (10) -> y(1) x(1)->hidden(10): Y=σ(XW+b)Y=σ(XW+b)Y = \sigma(XW+b) , σσ\sigma为激活函数relu 输出层为没有激活函数的线性层。2 TensorFlow 基本用法先构造计算网络。(就是一个表达式树),然...原创 2018-04-06 19:48:30 · 1471 阅读 · 0 评论