当前位置:  编程技术>综合
本页文章导读:
    ▪Spring--多种Bean的注入(下)       继续把剩下的集合注入、方法注入等整理完成,这篇依然以Setter注入为准,关于Java中的集合,我在前文《The Collection Interfaces in Java》已做了简单的介绍,这篇重点来看Map和List这两种常见的.........
    ▪浅谈Deep Learning的基本思想和方法      Deep Learning,又叫Unsupervised Feature Learning或者Feature Learning,是目前非常热的一个研究主题。 本文将主要介绍Deep Learning的基本思想和常用的方法。 一. 什么是Deep Learning? 实际生活中,人们为了.........
    ▪Windows XP和Windows 7安装office2010出现“Windows Installer 服务不能更新一个或多个受保护”的错误解决办发      故障现象:   在WinXP上安装Office 2010,出现“windows installer 服务不能更新一个或多个受保护的Windows文件”,然后Office 2010安装程序终止,自动回卷,也就是自动退出了安装,并将已经安装的.........

[1]Spring--多种Bean的注入(下)
    来源: 互联网  发布时间: 2013-11-10

继续把剩下的集合注入、方法注入等整理完成,这篇依然以Setter注入为准,关于Java中的集合,我在前文《The Collection Interfaces in Java》已做了简单的介绍,这篇重点来看Map和List这两种常见的集合类型,其他的本人没有接触过,注入的方式也应该不会差太多,就不做介绍了。

1.集合的注入

下面例子是Map和List的注入的配置方式(例子代码部分来自网络):

Map:

    <bean id="AdhesiveSpaceConstant" class="com.boco.irms.adhesive.location.bo.SpaceConstant">
          <propertyname="fieldMaps">
               <map>
                     <entrykey="SITE">
                           <map>
                                <entrykey="RELATED_LOCATION_CUID" value="resourceId" />
                           </map>
                     </entry>
                     <entrykey="ROOM">
                           <map>
                                <entrykey="ROOM_TYPE" value="roomTypeName" />
                           </map>
                     </entry>
               </map>
          </property>
    </bean>

从上面配置中看出,一个叫fieldMaps的Map注入到了SpaceConstant,那从这个配置中你是否看出了fieldMaps的数据结构呢?它是由两个Map嵌套而成:Map<String,Map<String,String>>。

下面看List:

List:

<bean name="" class="">
             <proprety name="">
                        <list>
                              <value>集合的值</value>
                         </list>
             </proprety>
        </bean>

List的注入和Map就差不多了,不想多说。

    上面这两种配置方式是我在该系列中篇文章里讲到的内联式的配置方式,他的好处是使配置比较清爽,不足是不能复用,那我们在实际开发中,完全是有可能两个类用到同一个Map或List的,为了复用一个Map总不至于让两个不相干的类上抽象出一个父类吧?这时候大家可能就想到:是否存在外联式的配置方式呢?能不能把一个集合对象能当做正常类一样独立配置呢?带着这些疑问,来看下面的例子:

先 配置一个正常的Bean,用来引用Map:

<bean id="AdhesiveSyncBO" class="com.boco.irms.adhesive.location.sync.SyncBO"scope="prototype">
          <propertyname="mapSyncInfo" ref="mapUtil"/>
    </bean>

上面这个配置是一个非常标准的引用其他Bean的配置方式(该系列中篇里讲过),SyncBO引用mapUtil对象。其实mapUtil是一个

    
[2]浅谈Deep Learning的基本思想和方法
    来源: 互联网  发布时间: 2013-11-10

Deep Learning,又叫Unsupervised Feature Learning或者Feature Learning,是目前非常热的一个研究主题。

本文将主要介绍Deep Learning的基本思想和常用的方法。

一. 什么是Deep Learning?

实际生活中,人们为了解决一个问题,如对象的分类(对象可是是文档、图像等),首先必须做的事情是如何来表达一个对象,即必须抽取一些特征来表示一个对象,如文本的处理中,常常用词集合来表示一个文档,或把文档表示在向量空间中(称为VSM模型),然后才能提出不同的分类算法来进行分类;又如在图像处理中,我们可以用像素集合来表示一个图像,后来人们提出了新的特征表示,如SIFT,这种特征在很多图像处理的应用中表现非常良好,特征选取得好坏对最终结果的影响非常巨大。因此,选取什么特征对于解决一个实际问题非常的重要。


然而,手工地选取特征是一件非常费力、启发式的方法,能不能选取好很大程度上靠经验和运气;既然手工选取特征不太好,那么能不能自动地学习一些特征呢?答案是能!Deep Learning就是用来干这个事情的,看它的一个别名Unsupervised Feature Learning,就可以顾名思义了,Unsupervised的意思就是不要人参与特征的选取过程。因此,自动地学习特征的方法,统称为Deep Learning。


二. Deep Learning的基本思想

假设我们有一个系统S,它有n层(S1,...Sn),它的输入是I,输出是O,形象地表示为: I =>S1=>S2=>.....=>Sn => O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失,保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。现在回到我们的主题Deep Learning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,..., Sn。

另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会导致另外一类不同的Deep Learning方法。上述就是Deep Learning的基本思想。

三.Deep Learning的常用方法

a). AutoEncoder

最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重,自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征,在研究中可以发现,如果在原有的特征中加入这些自动学习得到的特征可以大大提高精确度,甚至在分类问题中比目前最好的分类算法效果还要好!这种方法称为AutoEncoder。当然,我们还可以继续加上一些约束条件得到新的Deep Learning方法,如如果在AutoEncoder的基础上加上L1的Regularity限制(L1主要是约束每一层中的节点中大部分都要为0,只有少数不为0,这就是Sparse名字的来源),我们就可以得到Sparse AutoEncoder方法。

b). Sparse Coding

如果我们把输出必须和输入相等的限制放松,同时利用线性代数中基的概念,即O = w1*B1 + W2*B2+....+ Wn*Bn, Bi是基,Wi是系数,我们可以得到这样一个优化问题:

                                                                                    Min |I - O| 

通过求解这个最优化式子,我们可以求得系数Wi和基Bi,这些系数和基础就是输入的另外一种近似表达,因此,它们可以特征来表达输入I,这个过程也是自动学习得到的。如果我们在上述式子上加上L1的Regularity限制,得到:

                                                                                    Min |I - O| + u*(|W1| + |W2| + ... + |Wn|)

这种方法被称为Sparse Coding。


c) Restrict  Boltzmann Machine (RBM)

假设有一个二部图,每一层的节点之间没有链接,一层是可视层,即输入数据层(v),一层是隐藏层(h),如果假设所有的节点都是二值变量节点(只能取0或者1值),同时假设全概率分布p(v, h)满足Boltzmann 分布,我们称这个模型是Restrict  Boltzmann Machine (RBM)。下面我们来看看为什么它是Deep Learning方法。首先,这个模型因为是二部图,所以在已知v的情况下,所有的隐藏节点之间是条件独立的,即p(h|v) =p(h1|v).....p(hn|v)。同理,在已知隐藏层h的情况下,所有的可视节点都是条件独立的,同时又由于所有的v和h满足Boltzmann 分布,因此,当输入v的时候,通过p(h|v) 可以得到隐藏层h,而得到隐藏层h之后,通过p(v|h) 又能得到可视层,通过调整参数,我们就是要使得从隐藏层得到的可视层v1与原来的可视层v如果一样,那么得到的隐藏层就是可视层另外一种表达,因此隐藏层可以作为可视层输入数据的特征,所以它就是一种Deep Learning方法。

如果,我们把隐藏层的层数增加,我们可以得到Deep Boltzmann Machine (DBM);如果我们在靠近可视层的部分使用贝叶斯信念网络(即有向图模型,当然这里依然限制层中节点之间没有链接),而在最远离可视层的部分使用Restrict  Boltzmann Machine,我们可以得到Deep Belief Net (DBN) 。


当然,还有其它的一些Deep Learning 方法,在这里就不叙述了。总之,Deep Learning能够自动地学习出数据的另外一种表示方法,这种表示可以作为特征加入原有问题的特征集合中,从而可以提高学习方法的效果,是目前业界的研究热点。

作者:xianlingmao 发表于2013-1-7 22:18:06 原文链接
阅读:35 评论:0 查看评论

    
[3]Windows XP和Windows 7安装office2010出现“Windows Installer 服务不能更新一个或多个受保护”的错误解决办发
    来源: 互联网  发布时间: 2013-11-10
故障现象:

  在WinXP上安装Office 2010,出现“windows installer 服务不能更新一个或多个受保护的Windows文件”,然后Office 2010安装程序终止,自动回卷,也就是自动退出了安装,并将已经安装的文件删除并恢复系统之前的状态。检查一下这两个目录下是否有这些文件。如果没有请下载下面我提供的压缩包。


  解决方案:
  这是因为系统缺失文件所致。在C:\Program Files\Common Files\Microsoft Shared\web server extensions\40\bin文件夹中缺失了某些文件。可以下载我这个压缩包,将它直接解压到系统盘目录下,全部替换然后重新安装Office 2010就可以了。

  需要说明的是Office 2007的安装程序也会碰到类似的现象,解决的方法相同。

       文件下载链接
作者:hycmanson 发表于2013-1-7 22:16:43 原文链接
阅读:41 评论:0 查看评论

    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪简单选择排序算法    ▪国外 Android资源大集合 和个人学习android收藏    ▪.NET MVC 给loading数据加 ajax 等待loading效果
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

mysql iis7站长之家