Python
文章平均质量分 72
sinat_18131557
这个作者很懒,什么都没留下…
展开
-
CMAES优化方法测试--python
进行配准的时候发现有些研究说CMAES优化方法算是status-of-art的方法,找了一下相关的CMAES实现。在python中可以直接使用cma库,通过。由于CMAES是通过协方差优化,优化变量至少是2D的。example中都是使用。中的目标函数,如果是自定义的目标函数需要参照以下写,目标函数带一个参数。注意输入初始化的参数,数据大小与木目标函数的输入一致。中传入这个目标函数即可。原创 2023-05-11 11:14:55 · 704 阅读 · 1 评论 -
tensorflow模型的量化与剪枝
1. float32 -> float16的量化import tensorflow as tfsaved_model_dir="/path/to/mobilenet_v1_224"converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)converter.optimizations = [tf.lite.Optimize.DEFAULT]converter.target_spec.supported_type原创 2022-03-01 16:52:23 · 1430 阅读 · 0 评论 -
树莓派开机自启动Python后台服务
通过Python的flask框架搭建了一个服务,在树莓派上运行,希望可以开机自动启动。查看可以通过修改/etc/rc.local文件来开机自启动。在exit 0之前加入自己的启动代码,如:......sudo python3 /home/pi/path_for_file/server.py &exit 0最后的&一定需要,因为服务是一直等待的,通过&表达开启一个线程来运行这个服务,否则一直在主线程运行,导致无法正常开机。然而事实上发现服务并没有成功启动,通过sudo sy原创 2021-07-10 21:33:05 · 847 阅读 · 1 评论 -
Pyinstaller打包问题
打包过程在pip中安装pyinstaller:pip install pyinstaller切换到需要打包的目录中,执行pyinstaller -F xxx.py命令,其中xxx.py文件即为需要打包的文件。其他可选的指令:-w 打桌面程序,去掉cmd窗口-i 设置图标,图标后缀为.ico如:pyinstaller -F -w -i gen.ico xxx.py打包完成以后,打开dist/xxx.exe文件执行即可。issue打包过程中报错:pyinstaller Unicod原创 2021-07-01 17:04:49 · 349 阅读 · 0 评论 -
使用pyQt创建GUI进行绘图
环境配置安装在python环境中使用pip安装PyQt5和PyQt5-tools。pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5-toolsPycharm配置启动pycharm后新建一个项目,打开File->Setting->Tools->External Tools->(+原创 2021-05-19 11:35:49 · 1969 阅读 · 0 评论 -
在Keras下使用Tensorboard写入图片
在Keras中调用Tensorboard可以直接创建一个Tensorboard对象,在model.fit的callbacks里面就好了,但是有的时候需要添加图片到Tensorboard里面去,直接使用Tensorboard就不行了,需要重写一下Tensorboard。比如在下图中,需要将验证数据集的第一个数据绘制出来并显示结果,那么import tensorflow as tfimport matplotlib.pyplot as pltimport ioclass CustomTensorBoa原创 2021-05-13 16:12:22 · 483 阅读 · 1 评论 -
如何使用keras_yolo训练自己的数据
训练下载需要的文件:在qqwweee/keras-yolo3下载整个项目在YOLO下载一个weight文件下载一个数据集Train/Validation Data (439 MB)然后把数据集压缩包解压,并把qqwweee/keras-yolo3里面的voc_annatation.py复制过去,由于之前下载的是VOC2007的Train/Validation数据集,所以voc_annatation.py文件做了小修改,把第四行的sets=[('2007', 'train'), ('2007'原创 2020-06-01 16:25:14 · 366 阅读 · 0 评论 -
Python语音基础操作--12.4基于LDA,PCA的语音情感识别
LDA线性鉴别分析(Linear Discriminant Analysis, LDA)的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维度的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离。假设有一组属于两个类的n个d维样本x1,...,xn∈Rdx_1,...,x_n\in R^dx1,...,xn∈Rd,其中前n1n_1n1个样本属于类w1w_1w1,后n2n_2n2个样本属于类w2w_2w2,均值从同协方差矩阵的高斯分布。各类样本原创 2020-05-30 14:37:36 · 1817 阅读 · 0 评论 -
Python语音基础操作--12.3基于支持向量机SVM的语音情感识别
20 个世纪90 年代Vapnik等人提出了支持向量机(SVM) 算法,它是一种基于统计理论的学习方法,其日的是为了改善神经网络学习方法的不足。目前SVM已经广泛应用于数据挖掘、模式识别等领域。支持向量机在机器学习领域有着重要的地位,其集最大间隔的超平面、凸二次规划问题、核分析方法等多种技术于一身,具有广阔的发展和应用前景。支持向量机从当初被提出,经过Dual、Smith等人的逐步完善,Vapnik在《统计学习理论》的论著中论证了SVM算法优于归纳推理给出的误差率的界。大量研究表明SVM 算法是一种非常有效原创 2020-05-30 14:34:45 · 2981 阅读 · 7 评论 -
Python语音基础操作--12.2基于神经网络的情感识别
人工神经网络(Artificial Neural Network , ANN) 是一种由大量简单处理单元构成的并行分布式数学模型。在人类意识到人脑计算与传统计算机处理方式的区别时,神经网络就成了科学家们探究信息处理任务的关注对象。人工神经网络主要从两方面模仿大脑工作:从外界环境中学习,用突触权值存储知识。人类大脑接收外界剌激,感受器转换为电冲击传递给神经元构成的网络,再经由效应器把电冲击转换为可识别的效应输出。神经元是神经网络处理信息的基本单位,是由突触权值、加法器、激活函数三部分构成的非线性模型。神经原创 2020-05-30 14:33:14 · 2017 阅读 · 3 评论 -
Python语音基础操作--12.1基于KNN的情感识别
基于KNN的语音情感识别情感识别的框图如下,主要就是特征提取建模,然后在待测样本中提取相同的特征,送到模型中计算进行识别。特征短时能量:En=∑m=0N−1xn2(m)E_n=\sum_{m=0}^{N-1}x_n^2(m)En=m=0∑N−1xn2(m)短时抖动能量:Es=1M−1∑n=1M−1∣En−En+1∣1M∑n=1MEn×100E_s=\frac{\frac{1}{M-1}\sum_{n=1}^{M-1}|E_n-E_{n+1}|}{\frac{1}{M}\sum_{n=1}原创 2020-05-30 14:30:03 · 2450 阅读 · 1 评论 -
Python语音基础操作--11.2基于GMM的说话人识别模型
高斯混合模型(Gaussian Mixture Model, GMM)可以看做一种状态数为1的连续分布隐马尔科夫模型。一个MMM阶混合高斯模型的概率密度函数是MMM个高斯概率密度函数加权求和得到的:P(X∣λ)=∑i=1Mwibi(X)P(X|\lambda)=\sum_{i=1}^Mw_ib_i(X)P(X∣λ)=i=1∑Mwibi(X)其中XXX是D维随机向量,为说话人识别算法提取的特征矢量,wiw_iwi是混合权重,满足∑i=1Mwi=1\sum_{i=1}^Mw_i=1∑i=1Mwi原创 2020-05-30 14:25:51 · 2734 阅读 · 4 评论 -
Python语音基础操作--11.1矢量量化(VQ)的说话人情感识别
VQ基本原理矢量量化(VQ)的基本原理是将若干个标量数据组成一个矢量(或者从一帧语音数据中提取的特征矢量)在多维空间给予整体量化,从而可以在信息量损失最小的情况下压缩数据量。假设有N个K维的特征向量X={X1,X2,...,XN}X=\{X_1,X_2,...,X_N\}X={X1,X2,...,XN},(XXX在K维欧几里得空间RKR^KRK中),其中第i个矢量可写为:Xi={x1,x2,...,xK},i=1,2,...,NX_i=\{x_1,x_2,...,x_K\},i=1,2,...,N原创 2020-05-30 14:24:33 · 1861 阅读 · 2 评论 -
Python语音基础操作--10.2隐马尔科夫模型的孤立字识别
隐马尔科夫模型(Hidden Markov Models, HMM)作为语音信号的一种统计模型,在语音处理中得到广泛应用。一个用于语音识别的HMM通常用三组模型参数M={A,B,π}\bold{M=\{A,B,\pi\}}M={A,B,π}来定义,假设某HMM一共有N个状态{Si}i−1N\{S_i\}_{i-1}^N{Si}i−1N,那么参数的定义为:A\bold{A}A:状态转移概率矩阵;A=[a11...a1N.........aN1...aNN]A=\begin{bmatrix}原创 2020-05-30 14:20:50 · 2467 阅读 · 4 评论 -
Python语音基础操作--10.1基于动态时间规整(DTW)的孤立字语音识别试验
基于动态时间规整(DTW)的孤立字语音识别试验模板匹配法语音识别系统用户将词汇表中每个词依次说一遍,并且将其特征矢量时序作为模板存入模板库,在识别阶段,将输入语音的特征矢量时间序列依次与模板库中每个模板进行相识度比较,将相识度最高者作为识别的结果输出。特征使用MFCC系数以及一阶和二阶差分作为特征参数。MFCC是将人耳的听觉特征与语音参数相结合的一种特征参数。MFCC的计算可以参考3.4节。动态时间规整(DTW)在识别阶段的模式匹配中,不能简单地将输入模板与词库中模板相比较实现识别,因为语音信号原创 2020-05-30 14:18:32 · 3876 阅读 · 6 评论 -
Python语音基础操作--7.2LPC的语音合成
对于线性预测器s^(n)=∑i=1pais(n−i)\hat s(n)=\sum\limits_{i=1}^pa_is(n-i)s^(n)=i=1∑pais(n−i),其误差为e(n)=s(n)−s^(n)e(n)=s(n)-\hat s(n)e(n)=s(n)−s^(n),那么在预测误差e(n)e(n)e(n)和预测系数aia_iai已知的情况下,就可以求出合成语音。from chapter2_基础.soundBase import *from chapter7_语音合成.flipframe i原创 2020-05-30 14:15:11 · 2766 阅读 · 2 评论 -
Python语音基础操作--7.1帧合并
语音合成主要可分为波形合成法,参数合成法,规则合成法。波形合成法波形编码合成,直接把需要合成的语音通过编码的形式进行存储,称为PCM合成。波形编辑合成,通过在音库中采取语音的合成单元波形,对这些波形进行编辑拼接后输出。参数合成法分析法:提取语音参数,压缩存储量,然后人工控制这些参数的生成。规则法通过语音学规则产生语音。系统中最小语音单位的声学参数,以及由音素组成音节,由音节组成词,由词组成句子。帧合并分帧处理后,需要将多个帧合并起来,涉及的操作有去创函数和去交叠操作。原创 2020-05-30 14:13:39 · 1675 阅读 · 0 评论 -
Python语音基础操作--6.3ADPCM编码
自适应差分脉冲编码调制(Adaptive Differential Pulse Code Modulation, ADPCM)结合了ADM的差分信号与PCM的二进制编码的方法,采用预测编码来压缩数据量。体现在使用预测技术减少量化编码器输入信号的冗余度,将差值信号编码以提高效率,降低编码信号速率,广泛应用与语音和图像信号的数字化。自适应量化在语音信号量化器中,为了适应信号的动态范围,需要把量化阶距选的足够大,另外为了减少量化噪声,有希望减小量化阶距。语音信号在很宽的范围内幅值变化,为了适应这样的变化,就是原创 2020-05-30 14:11:14 · 2244 阅读 · 0 评论 -
Python语音基础操作--6.2LPC编码
线性预测编码(linear predictive coding, LPC) 是运用于音频信号处理与语音处理的压缩编码方式,根据线性预测模型的信息表示数字语音信号谱包络。它是最有效的语音分析技术之一,也是低位速高质量语音编码的最有用的方法之一,能够提供非常精确的语音参数预测。线性预测编码通过估计共振峰剔除它们在语音信号中的作用,估计保留的蜂鸣音强度与频率来分析语音信号;同时,使用蜂呜参数与残余信号生成源信号,使用共振峰生成表示声道的滤波器,源、信号经过滤坡器的处理来逆向合成语音信号。由于语音信号随着时间变化这原创 2020-05-30 14:09:50 · 4188 阅读 · 0 评论 -
Python语音基础操作--6.1PCM编码
脉冲编码调制(Pulse Code Modulation, PCM)是语音信号的重要编码方式之一。语音编码是将模拟信号转为数字信号的语音通信技术,分为波形编码、参量编码和混合编码等类型。波形编码针对语音波形进行,在降低量化样本比特数的同时保持了良好的语音质量。PCM编码就是一种波形编码方法,通过每隔一段时间对模拟语音信号采样,将其取整量化,用二进制码表示抽样量化的隔值,实现将语音数字化的编码调制。PCM是现代数字传输系统普遍采用的调制方式。PCM可以向用户提供多种业务,包括2M-155Mbit/s速率的数原创 2020-05-30 14:08:29 · 3762 阅读 · 3 评论 -
Python语音基础操作--5.4小波分解
在传统的傅里叶分析中,信号完全是在频域展开的,不包含任何时频的信息。因为丢弃的时域信息对某些应用同样重要,所以出现很多能表征时域和频域信息的信号分析方法,如短时傅里叶变换、Gabor 变换、时频分析、小波变换等。其中,短时傅里叶变换是在傅里叶分析基础上引入时域信息的最初尝试,在假定一定长度时间窗内的信号是平稳的前提下,短时傅里叶变换可以通过将每个时间窗内的信号展开到频域的方法来获得局部的频域信息。但是,短时傅里叶变换的时域区分度只能依赖于大小不变的时间窗,对某些瞬态信号来说还是粒度太大。所以,对很多应用来说原创 2020-05-30 14:06:14 · 4818 阅读 · 10 评论 -
Python语音基础操作--5.2谱减法
谱减法对于任何一帧信号xi(m)x_i(m)xi(m)做FFT变换后:Xi(k)=∑m=1Nxi(m)exp(j2πmkN)X_i(k)=\sum_{m=1}^Nx_i(m)\exp(j\frac{2\pi mk}{N})Xi(k)=m=1∑Nxi(m)exp(jN2πmk)对于Xi(k)X_i(k)Xi(k)的幅值为∣Xi(k)∣|X_i(k)|∣Xi(k)∣,角度为Xanglei(k)=arctan[Im(Xi(k))Re(Xi(k))]X^i_{angle}(k)=\arcta原创 2020-05-30 14:04:13 · 3343 阅读 · 1 评论 -
Python语音基础操作--5.1自适应滤波
语音降噪主要研究如何利用信号处理技术消除信号中的强噪声干扰,从而提高输出信噪比以提取出有用信号的技术。消除信号中噪声污染的通常方法是让受污染的信号通过二个能抑制噪声而让信号相对不变的滤波器,此滤波器从信号不可检测的噪声场中取得输入,将此输入加以滤波,抵消其中的原始噪声,从而达到提高信噪比的目的。然而,由于干扰通常都是随机的,从带噪语音巾提取完全纯净的语音几乎不可能。在这种情况下,语音增强的目的主要有两个:一是改进语音质量,消除背景噪声,使昕者乐于接受,不感觉疲劳,这是一种主观度量;二是提高语音可懂度,这是原创 2020-05-30 14:02:17 · 4868 阅读 · 10 评论 -
keras中Conv2D,SeparableConv2D,DepthwiseConv2D实现与参数数量区别
Conv2D对于一个普通卷积来说,通常卷积核的大小,上一层的channel与本层的channel对应了参数的数量。使用了bias的话,普通卷积(Conv2d)的参数为:#params=(filter_size×filter_size×channellast+1)×channelthis\#params=(filter\_size\times filter\_size\times channel_{last}+1)\times channel_{this}#params=(filter_size×filt原创 2020-05-18 18:41:09 · 2912 阅读 · 2 评论 -
Python语音基础操作--4.3共振峰估计
声道可以被看成一根具有非均匀截面的声管,在发音时将起共鸣器的作用。当声门处准周期脉冲激励进入声道时会引起共振特性,产生一组共振频率,这一组共振频率称为共振峰频率或简称为共振峰。共振峰参数包括共振峰频率、频带宽度和幅值,共振峰信息包含在语音频谱的包络中。因此共振峰参数提取的关键是估计语音频谱包络,并认为谱包络中的最大值就是共振峰。利用语音频谱傅里叶变换相应的低频部分进行逆变换,就可以得到语音频谱的包络曲线。依据频谱包络线各峰值能量的大小确定出第1-4共振峰.在经典的语音信号模型中,共振峰等效为声道传输函数的原创 2020-05-09 13:53:54 · 6143 阅读 · 8 评论 -
Python语音基础操作--4.2基音周期检测
人在发声时候,根据声带是否振动可以将语音信号分为清音和浊音。浊音:有声语音,携带语言中大部分能量,在时域上有明显的周期性清音:类似于白噪声,没明显周期性在发浊音时候,声门使声带产生张弛震荡式振动,产生准周期激励冲激串。这种声带振动的频率被称为基音频率,相应的周期就是基音周期。基音频率在很大程度上反应了个人的特征。比如,男性的基音频率范围在70-200Hz范围内,女性和小孩的基音频率在200-450Hz之间。基音周期的估计就是基音检测,基音检测的最终目的是为了找出和声带振动频率完全一致或者尽可能相原创 2020-05-09 13:52:23 · 5485 阅读 · 7 评论 -
Python语音基础操作--4.1语音端点检测
双门限法所谓的端点检测其实就是将语音进行分段,分为轻音,浊音,静音等。主要依据的短时能量以及短时过零率。短时能量表示为:En=∑m=1Nxn2(m)E_n=\sum\limits_{m=1}^Nx_n^2(m)En=m=1∑Nxn2(m)短时过零率表示为:Zn=12∑m=1N∣sgn[xn(m)]−sgn[xn(m−1)]∣Z_n=\frac{1}{2}\sum\limits_{m=1}^N|sgn[x_n(m)]-sgn[x_n(m-1)]|Zn=21m=1∑N∣sgn[xn(m)原创 2020-05-09 13:49:37 · 8925 阅读 · 13 评论 -
Android运行Keras/TF模型
建模与转化在Android Studio中使用深度学习模型的话,有一种方式是使用tflite,但如果模型本来就比较小的话,可以直接使用tensorflow的.pd文件,不用转化为tflite模型。如果是使用pytorch或者keras建模的模型文件,可以通过函数转化为tensorflow的.pd文件。如下文件就是keras模型转化为tf的代码(convert_keras_to_tf.py)。#...原创 2020-04-28 18:53:26 · 1384 阅读 · 7 评论 -
时序信号的模型使用tflite的示例
tflite图像的Demo官方已经给了,下载下来看了,其实写的比较复杂,如果需要改成时序信号的使用,需要改的东西挺多的,也不叫耗时间,还不如自己新建一个。模型转化由于我并不是直接使用tensorflow来进行训练的,是使用keras训练的,由于Tensorflow也使用了Keras的API所以,Keras的模型(.h5/.hdf5)文件是可以直接转化为tflite的。import tenso...原创 2020-04-28 18:44:14 · 1051 阅读 · 2 评论 -
Python语音基础操作--3.5线性预测分析
一个简化的语音模型可以看做一个数字滤波器:H(z)=S(z)U(z)=G1−∑i=1paizi−1H(z)=\frac{S(z)}{U(z)}=\frac{G}{1-\sum\limits_{i=1}^pa_iz_i^{-1}}H(z)=U(z)S(z)=1−i=1∑paizi−1G这里s(n)s(n)s(n)和u(n)u(n)u(n)之间的关系可以用差分方程来表示:s(n)=∑i...原创 2020-04-27 17:45:03 · 1901 阅读 · 4 评论 -
Python语音基础操作--3.4倒谱分析与MFCC系数
倒谱分析语音信号x(n)x(n)x(n)可以看做是声门激励信号x1(n)x_1(n)x1(n)和声道冲击响应信号x2(n)x_2(n)x2(n)的卷积:x(n)=x1(n)∗x2(n)x(n)=x_1(n)*x_2(n)x(n)=x1(n)∗x2(n)为了便于处理卷积,系统通常采用同态处理的方式做卷积,将卷积关系变换为求和关系:上图中*,+,·分别表示卷积,加法,乘法运算。第一个...原创 2020-04-27 17:42:33 · 6648 阅读 · 3 评论 -
Python语音基础操作--3.3短时频域分析
短时傅里叶变换语音信号是典型的非平稳信号,但是由于其非平稳性由发声器官的物理运动过程而产生,这种过程是相对变换缓慢的,在10~30ms以内可以认为是平稳的。傅里叶分析时分析线性系统和平稳信号稳态特征的手段,而短时傅里叶分析,是用稳态分析方法处理非平稳信号的一种方法。假设语音波形时域信号为x(l)x(l)x(l),加窗分帧处理后得到的第nnn帧语音信号为xn(m)x_n(m)xn(m),那有:...原创 2020-04-27 17:33:02 · 4101 阅读 · 6 评论 -
Python语音基础操作--3.2短时时域分析
时域分析就是提取语音信号的时域参数。时域分析通常用于最基本的参数分析与应用,如语音分割,预处理,分类等。常用的时域参数有短时能量,短时过零率,短时自相关系数和短时平均幅度差函数等。短时能量与短时平均幅度设第nnn帧语音信号xn(m)x_n(m)xn(m)的短时能量用EnE_nEn表示:En=∑m=1Nxn2(m)E_n=\sum\limits_{m=1}^Nx_n^2(m)En=m...原创 2020-04-27 17:30:02 · 6064 阅读 · 13 评论 -
Python语音基础操作--3.1语音分帧与加窗
一般来讲,语音信号的采样率是挺高的,而且认为语音信号在一定时间段的基本特性不会发生较大的变化,具有一定的短时平稳性。进行“短时分析”就行将信号分解成一段一段地来处理,每一段就叫一帧,大约10-30ms,也就是一秒钟大约33-100帧,对于通常10K的采样率来说,这样也能有一定的信息存在。分帧通常有一定的交叠部分,就是帧移。帧移与帧长的比通常为0~1/2。分帧就是通过加窗函数实现的,假设原始信号为...原创 2020-04-06 11:22:50 · 9398 阅读 · 22 评论 -
Python语音基础操作--2.4语音信号生成
从人类的发音器官的机理来看,发不同性质的声音时,声道的情况是不同的。此外,声门和声道的相互藕合会形成语音信号的非线性特性。但语音信号特性随着时间变化是很缓慢的,所以可以作出一些合理的假设,将语音信号分为一些相继的短段进行处理,在这些短段中可以认为语音信号特性是不随时间变化的平稳随机过程。通过对发音器官和语音产生机理的分析,语音生成系统理论上分成三个部分,在声门(声带)以下,称为"声门子系统",它负...原创 2020-04-06 11:12:03 · 4133 阅读 · 0 评论 -
Python语音基础操作--2.3声强与响度
声压声压是定量描述声波的最基本的物理量,它是由于声扰动产生的逾量压强,是空间位置和时间的函数。由于声压的测量比较易于实现,而且通过声压的测量也可以间接求得质点振速等其他声学参量,因此,声压已成为人们最为普遍采用的定量描述声披性质的物理量。有效声压通常讲的卢压指的是有效声压,即在一定时间间隔内将瞬时声压对时间求方均根值所得。设语音长度度为TTT, 离散点数为NNN, 则有效声压的计算公式为P...原创 2020-04-06 11:03:52 · 8129 阅读 · 4 评论 -
Python语音基础操作--2.2语音编辑
信号相加读取了语音信号之后可以看到是一个一维数组,可以直接通过一维数组(列表)的形式进行操作。在两个序列长度不一样时候,可以在短的一个序列后补零。class soundBase: def __init__(self, path): self.path = path def sound_add(self, data1, data2): if le...原创 2020-04-06 10:58:16 · 4794 阅读 · 12 评论 -
Python语音基础操作--2.1语音录制,播放,读取
使用Python进行语音信号处理。借助一些基础包,进行相关工具的二次开发。语言录制import pyaudioimport waveCHUNK = 1024FORMAT = pyaudio.paInt16CHANNELS = 2RATE = 16000RECORD_SECONDS = 2WAVE_OUTPUT_FILENAME = "Oldboy.wav"p = pyaud...原创 2020-04-06 10:42:22 · 12764 阅读 · 21 评论 -
常用的深度学习激活函数公式与函数图
深度学习是非线性的转化,但是通过数学公式y=Wx+by=Wx+by=Wx+b的转化还是线性的,只有加入激活函数之后才是非线性的。逻辑函数(Sigmoid)ϕ(x)=11+e−x\phi(x)=\frac{1}{1+e^{-x}}ϕ(x)=1+e−x1正切函数ϕ(x)=tanh(x)=1−e−2x1+e−2x\phi(x)=\tanh(x)=\frac{1-e^{-2x}}{1+e^...原创 2020-02-23 20:33:27 · 412 阅读 · 0 评论 -
Python与机器学习实战——SVM(1)
SVM感知器能将线性可分数据集准确分割开,但是从损失函数可以看出,只是分割开了,但是没有一个最优解,比如:这样虽然两条直线都将数据集分开了,但是如果出现了一个新的数据点,很有可能这个数据点的分割结果是错误的。比如这样:那么就需要绿色的这个“超平面”作为分类输出才行。这个最有“超平面”就是支持向量机SVM的分类思想。线性SVM在感知器中有描述到样本点(xi,yi)(x_i,y_i)(x...原创 2020-02-11 19:29:02 · 348 阅读 · 0 评论