Middlegen配置
19/04/13 19:37 Filed in: java
@+++++++++++++++++++++
@+ Ant配置 +@
@+++++++++++++++++++++
Ant解压到MiddleGen目录,下面假设目录为C:\Middlegen\Ant 更改/修改环境变量 ------------------------------------------------------------------------------------ ANT_HOME C:\Middlegen\Ant PATH %ANT_HOME%\bin; ------------------------------------------------------------------------------------
@+++++++++++++++++++++ @+ MiddleGen配置 +@ @+++++++++++++++++++++
********************************************** ** 解压完成后修改根目录下 build.xml ** **********************************************
(1)首先更改目标数据库配置文件地址 查找关键字 ”!ENTITY”,得到 ------------------------------------------------------------------------------------ ]> ------------------------------------------------------------------------------------ 默认情况下,采用的是hsqldb.xml,将其修改为我们所用的数据库配置文件(mysql.xml)
(2)Application name 查找 ------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
将airline修改为我们所希望的应用程序名称
(3)输出目录 查找关键字“name="build.gen-src.dir"”,得到 ------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
修改value="${build.dir}/gen-src"使其指向我们所期望的输出目录
(4)对应代码的Package name 查找关键字“destination”,得到 ------------------------------------------------------------------------------------
destination="${build.gen-src.dir}"
package="${name}.hibernate" -->更改为我们需要的包名
genXDocletTags="false" -->设置成true生成以后进行映射提供帮助
genIntergratedCompositeKeys="false"
javaTypeMapper= "middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/>
------------------------------------------------------------------------------------
注意:如果是SQLServer,需要将下面
------------------------------------------------------------------------------------
schema="${database.schema}"
catalog="${database.catalog}"
------------------------------------------------------------------------------------
删除,否则Middlegen会报出找不到表的错误
****************************************************** ** 配置\config\database子目录对应的数据库xml文件,如mysql.xml ** ******************************************************
------------------------------------------------------------------------------------
value="jdbc:mysql://localhost:3306/testDB?
useUnicode=true&characterEncoding=gb2312"/>
------------------------------------------------------------------------------------
=================在MiddleGen 根目录下运行ant,就将出现MiddleGen的界面=================
********************************* ** hbm2java 一般配置 ** ********************************* 修改文件extensions\tools\bin\setenv.bat ------------------------------------------------------------------------------------ @echo off set JDBC_DRIVER=C:\Middlegen\lib\mm.mysql-2.0.4-bin.jar -->JDBC包 set HIBERNATETOOLS_HOME=C:\Middlegen\extensions -->extensions主目录 set HIBERNATE_HOME=C:\Middlegen\hibernate -->hibernate主目录 rem echo HIBERNATETOOLS_HOME set to %HIBERNATETOOLS_HOME%
if "%HIBERNATE_HOME%" == "" goto noHIBERNATEHome
set CORELIB=%HIBERNATE_HOME%\lib set LIB=%HIBERNATETOOLS_HOME%\lib set CP=%CLASSPATH%;%JDBC_DRIVER%;%HIBERNATE_HOME%\hibernate2.jar; %CORELIB%\commons-logging-1.0.4.jar;%CORELIB%\commons-lang-1.0.1.jar; %CORELIB%\cglib-full-2.0.2.jar;%CORELIB%\dom4j-1.4.jar;%CORELIB%\odmg-3.0.jar; %CORELIB%\xml-apis.jar;%CORELIB%\xerces-2.4.0.jar;%CORELIB%\xalan-2.4.0.jar; %CORELIB%\jdom.jar;%CORELIB%\commons-collections-2.1.1.jar; %CORELIB%\hibernate-tools.jar -->重点说明:保证根据上面的设置能找到这些包
if not "%HIBERNATE_HOME%" == "" goto end
:noHIBERNATEHome echo HIBERNATE_HOME is not set. Please set HIBERNATE_HOME. goto end
:end ------------------------------------------------------------------------------------ 在目录下执行C:\Middlegen\extensions\tools\bin>hbm2java c:\middlegen\workshop\test\*.xml --output=c:\middlegen\workshop即可
Ant解压到MiddleGen目录,下面假设目录为C:\Middlegen\Ant 更改/修改环境变量 ------------------------------------------------------------------------------------ ANT_HOME C:\Middlegen\Ant PATH %ANT_HOME%\bin; ------------------------------------------------------------------------------------
@+++++++++++++++++++++ @+ MiddleGen配置 +@ @+++++++++++++++++++++
********************************************** ** 解压完成后修改根目录下 build.xml ** **********************************************
(1)首先更改目标数据库配置文件地址 查找关键字 ”!ENTITY”,得到 ------------------------------------------------------------------------------------ ]> ------------------------------------------------------------------------------------ 默认情况下,采用的是hsqldb.xml,将其修改为我们所用的数据库配置文件(mysql.xml)
(2)Application name 查找 ------------------------------------------------------------------------------------
(3)输出目录 查找关键字“name="build.gen-src.dir"”,得到 ------------------------------------------------------------------------------------
(4)对应代码的Package name 查找关键字“destination”,得到 ------------------------------------------------------------------------------------
注意:如果是SQLServer,需要将
****************************************************** ** 配置\config\database子目录对应的数据库xml文件,如mysql.xml ** ******************************************************
------------------------------------------------------------------------------------
=================在MiddleGen 根目录下运行ant,就将出现MiddleGen的界面=================
********************************* ** hbm2java 一般配置 ** ********************************* 修改文件extensions\tools\bin\setenv.bat ------------------------------------------------------------------------------------ @echo off set JDBC_DRIVER=C:\Middlegen\lib\mm.mysql-2.0.4-bin.jar -->JDBC包 set HIBERNATETOOLS_HOME=C:\Middlegen\extensions -->extensions主目录 set HIBERNATE_HOME=C:\Middlegen\hibernate -->hibernate主目录 rem echo HIBERNATETOOLS_HOME set to %HIBERNATETOOLS_HOME%
if "%HIBERNATE_HOME%" == "" goto noHIBERNATEHome
set CORELIB=%HIBERNATE_HOME%\lib set LIB=%HIBERNATETOOLS_HOME%\lib set CP=%CLASSPATH%;%JDBC_DRIVER%;%HIBERNATE_HOME%\hibernate2.jar; %CORELIB%\commons-logging-1.0.4.jar;%CORELIB%\commons-lang-1.0.1.jar; %CORELIB%\cglib-full-2.0.2.jar;%CORELIB%\dom4j-1.4.jar;%CORELIB%\odmg-3.0.jar; %CORELIB%\xml-apis.jar;%CORELIB%\xerces-2.4.0.jar;%CORELIB%\xalan-2.4.0.jar; %CORELIB%\jdom.jar;%CORELIB%\commons-collections-2.1.1.jar; %CORELIB%\hibernate-tools.jar -->重点说明:保证根据上面的设置能找到这些包
if not "%HIBERNATE_HOME%" == "" goto end
:noHIBERNATEHome echo HIBERNATE_HOME is not set. Please set HIBERNATE_HOME. goto end
:end ------------------------------------------------------------------------------------ 在目录下执行C:\Middlegen\extensions\tools\bin>hbm2java c:\middlegen\workshop\test\*.xml --output=c:\middlegen\workshop即可
mac下Apache配置
19/04/13 19:35 Filed in: mac
mac的apache配置
2011-08-12 23:54:20| 分类: mac
|字号
订阅
最近把开发的项目转移到mac平台上面,自自然然就要配置apache和tomcat的啦,今天倒腾了一下,搭建好了apache的配置~
其实跟windows的apache差不多,只不过我用的是mac osx10.6.7,自带了apache,问了一下群友,设置了root账户的密码,之前我的root账号是空密码,导致用终端时怎么输入都输入不到,anyway,简单记录一下apache的配置
在finder下按cmd+shift+g,有点像windows下的运行,方便打开某个系统目录
输入/private/etc进入etc目录下
如图,用textmate打开apache2下的httpd.conf,把下面这一行前面的#去掉,开启virtual hosts模块
Include /private/etc/apache2/extra/httpd-vhosts.conf
后面就简单了,像以往一样添加虚拟服务器的root路径,访问权,域名指向等~
都在/apache2/extra下面:
添加虚拟服务器:
http-vhosts.conf添加下面配置
DocumentRoot "/Users/linsylar/work/flash builder project/company"
ServerName www.haosheng.com
开启目录访问权:
http-userdir.conf添加下面配置
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
好了,基本上就这么简单,现在要在host上添加我虚拟服务器的域名了~设置host
mac的host文件也在/private/etc/目录下面
设置就大公告成了~
现在在终端把apache启动,或者重启就行了
终端输入:
sudo apachectl start 启动apache
sudo apachectl restart 重启apache
2011-08-12 23:54:20| 分类: mac
|字号
订阅
最近把开发的项目转移到mac平台上面,自自然然就要配置apache和tomcat的啦,今天倒腾了一下,搭建好了apache的配置~
其实跟windows的apache差不多,只不过我用的是mac osx10.6.7,自带了apache,问了一下群友,设置了root账户的密码,之前我的root账号是空密码,导致用终端时怎么输入都输入不到,anyway,简单记录一下apache的配置
在finder下按cmd+shift+g,有点像windows下的运行,方便打开某个系统目录
输入/private/etc进入etc目录下
如图,用textmate打开apache2下的httpd.conf,把下面这一行前面的#去掉,开启virtual hosts模块
Include /private/etc/apache2/extra/httpd-vhosts.conf
后面就简单了,像以往一样添加虚拟服务器的root路径,访问权,域名指向等~
都在/apache2/extra下面:
添加虚拟服务器:
http-vhosts.conf添加下面配置
DocumentRoot "/Users/linsylar/work/flash builder project/company"
ServerName
开启目录访问权:
http-userdir.conf添加下面配置
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
好了,基本上就这么简单,现在要在host上添加我虚拟服务器的域名了~设置host
mac的host文件也在/private/etc/目录下面
设置就大公告成了~
现在在终端把apache启动,或者重启就行了
终端输入:
sudo apachectl start 启动apache
sudo apachectl restart 重启apache
机器学习会议
08/03/13 14:32
tier-1:
IJCAI (1+): International Joint Conference on Artificial Intelligence AAAI (1): National Conference on Artificial Intelligence
COLT (1): Annual Conference on Computational Learning Theory
CVPR (1): IEEE International Conference on Computer Vision and Pattern Recognition
ICCV (1): IEEE International Conference on Computer Vision
ICML (1): International Conference on Machine Learning
NIPS (1): Annual Conference on Neural Information Processing Systems
ACL (1-): Annual Meeting of the Association for Computational Linguistics
KR (1-): International Conference on Principles of Knowledge Representation and Reasoning
SIGIR (1-): Annual International ACM SIGIR Conference on Research and Development in Information Retrieval
SIGKDD (1-): ACM SIGKDD International Conference on Knowledge Discovery and Data Mining
UAI (1-): International Conference on Uncertainty in Artificial Intelligence
*Impact factor (According to Citeseer 03):
IJCAI :1.82 (top 4.09 %)
AAAI :1.49 (top 9.17%)
COLT:1.49 (top 9.25%)
ICCV :1.78 (top 4.75%)
ICML :2.12 (top 1.88%)
NIPS :1.06 (top 20.96%)
ACL :1.44 (top 10.07%)
KR :1.76 (top 4.99%)
SIGIR :1.10 (top 19.08%)
Average:1.56 (top 8.02%)
IJCAI (1+): AI最好的综合性会议, 1969年开始, 每两年开一次, 奇数年开. 因为AI 实在太大, 所以虽然每届基本上能录100多篇(现在已经到200多篇了),但分到每个 领域就没几篇了,象achine learning、computer vision这么大的领域每次大概也 就10篇左右, 所以难度很大. 不过从录用率上来看倒不太低,基本上20%左右, 因为内 行人都会掂掂分量, 没希望的就别浪费reviewer的时间了. 最近中国大陆投往国际会 议的文章象潮水一样, 而且因为国内很少有能自己把关的研究组, 所以很多会议都在 complain说中国的低质量文章严重妨碍了PC的工作效率. 在这种情况下, 估计这几年 国际会议的录用率都会降下去. 另外, 以前的IJCAI是没有poster的, 03年开始, 为了 减少被误杀的好人, 增加了2页纸的poster.值得一提的是, IJCAI是由貌似一个公司 的”IJCAI Inc.”主办的(当然实际上并不是公司, 实际上是个基金会), 每次会议上要 发几个奖, 其中最重要的两个是IJCAI Research Excellence Award 和 Computer & Thoughts Award, 前者是终身成就奖, 每次一个人, 基本上是AI的最高奖(有趣的是, 以AI为主业拿图灵奖的6位中, 有2位还没得到这个奖), 后者是奖给35岁以下的 青年科学家, 每次一个人. 这两个奖的获奖演说是每次IJCAI的一个重头戏.另外, IJCAI 的 PC member 相当于其他会议的area chair, 权力很大, 因为是由PC member 去找 reviewer 来审, 而不象一般会议的PC member其实就是 reviewer. 为了制约 这种权力, IJCAI的审稿程序是每篇文章分配2位PC member, primary PC member去找 3位reviewer, second PC member 找一位.
AAAI (1): 美国人工智能学会AAAI的年会. 是一个很好的会议, 但其档次不稳定, 可 以给到1+, 也可以给到1-或者2+, 总的来说我给它”1″. 这是因为它的开法完全受 IJCAI制约: 每年开, 但如果这一年的 IJCAI在北美举行, 那么就停开. 所以, 偶数年 里因为没有IJCAI, 它就是最好的AI综合性会议, 但因为号召力毕竟比IJCAI要小一些, 特别是欧洲人捧AAAI场的比IJCAI少得多(其实亚洲人也是), 所以比IJCAI还是要稍弱 一点, 基本上在1和1+之间; 在奇数年, 如果IJCAI不在北美, AAAI自然就变成了比 IJCAI低一级的会议(1-或2+), 例如2005年既有IJCAI又有AAAI, 两个会议就进行了协 调, 使得IJCAI的录用通知时间比AAAI的deadline早那么几天, 这样IJCAI落选的文章 可以投往AAAI.在审稿时IJCAI 的 PC chair也在一直催, 说大家一定要快, 因为AAAI 那边一直在担心IJCAI的录用通知出晚了AAAI就麻烦了.
COLT (1): 这是计算学习理论最好的会议, ACM主办, 每年举行. 计算学习理论基本上可以看成理论计算机科学和机器学习的交叉, 所以这个会被一些人看成是理论计算 机科学的会而不是AI的会. 我一个朋友用一句话对它进行了精彩的刻画: “一小群数 学家在开会”. 因为COLT的领域比较小, 所以每年会议基本上都是那些人. 这里顺便 提一件有趣的事, 因为最近国内搞的会议太多太滥, 而且很多会议都是LNCS/LNAI出 论文集, LNCS/LNAI基本上已经被搞臭了, 但很不幸的是, LNCS/LNAI中有一些很好的 会议, 例如COLT.
CVPR (1): 计算机视觉和模式识别方面最好的会议之一, IEEE主办, 每年举行. 虽然题 目上有计算机视觉, 但个人认为它的模式识别味道更重一些. 事实上它应该是模式识 别最好的会议, 而在计算机视觉方面, 还有ICCV 与之相当. IEEE一直有个倾向, 要把 会办成”盛会”, 历史上已经有些会被它从quality很好的会办成”盛会”了. CVPR搞不好 也要走这条路. 这几年录的文章已经不少了. 最近负责CVPR会议的TC的chair发信 说, 对这个community来说, 让好人被误杀比被坏人漏网更糟糕, 所以我们是不是要减 少好人被误杀的机会啊? 所以我估计明年或者后年的CVPR就要扩招了.
ICCV (1): 介绍CVPR的时候说过了, 计算机视觉方面最好的会之一. IEEE主办, 每年举行.
ICML (1): 机器学习方面最好的会议之一. 现在是IMLS主办, 每年举行. 参见关于NIPS的 介绍.
NIPS (1): 神经计算方面最好的会议之一, NIPS主办, 每年举行. 值得注意的是, 这个会 每年的举办地都是一样的, 以前是美国丹佛, 现在是加拿大温哥华; 而且它是年底开会, 会开完后第2年才出论文集, 也就是说, NIPS’05的论文集是06年出. 会议的名字 “Advances in Neural Information Processing Systems”, 所以, 与ICML\ECML这样 的”标准的”机器学习会议不同, NIPS里有相当一部分神经科学的内容, 和机器学习有 一定的距离. 但由于会议的主体内容是机器学习, 或者说与机器学习关系紧密, 所以 不少人把NIPS看成是机器学习方面最好的会议之一. 这个会议基本上控制在Michael Jordan的徒子徒孙手中, 所以对Jordan系的人来说, 发NIPS并不是难事, 一些未必很 强的工作也能发上去, 但对这个圈子之外的人来说, 想发一篇实在很难, 因为留给”外 人”的口子很小. 所以对Jordan系以外的人来说, 发NIPS的难度比ICML更大. 换句话说, ICML比较开放, 小圈子的影响不象NIPS那么大, 所以北美和欧洲人都认, 而NIPS则有 些人(特别是一些欧洲人, 包括一些大家)坚决不投稿. 这对会议本身当然并不是好事, 但因为Jordan系很强大, 所以它似乎也不太care. 最近IMLS(国际机器学习学会)改选 理事, 有资格提名的人包括近三年在ICML\ECML\COLT发过文章的人, NIPS则被排除在 外了. 无论如何, 这是一个非常好的会.
ACL (1-): 计算语言学/自然语言处理方面最好的会议, ACL (Association of Computational Linguistics) 主办, 每年开.
KR (1-): 知识表示和推理方面最好的会议之一, 实际上也是传统AI(即基于逻辑的AI) 最好的会议之一. KR Inc.主办, 现在是偶数年开.
SIGIR (1-): 信息检索方面最好的会议, ACM主办, 每年开. 这个会现在小圈子气越来 越重. 信息检索应该不算AI, 不过因为这里面用到机器学习越来越多, 最近几年甚至 有点机器学习应用会议的味道了, 所以把它也列进来.
SIGKDD (1-): 数据挖掘方面最好的会议, ACM主办, 每年开. 这个会议历史比较短, 毕竟, 与其他领域相比,数据挖掘还只是个小弟弟甚至小侄儿. 在几年前还很难把它列 在tier-1里面, 一方面是名声远不及其他的 top conference响亮, 另一方面是相对容易 被录用. 但现在它被列在tier-1应该是毫无疑问的事情了.
UAI (1-): 名字叫”人工智能中的不确定性”, 涉及表示\推理\学习等很多方面, AUAI (Association of UAI) 主办, 每年开.
tier-2:
AAMAS (2+): International Joint Conference on Autonomous Agents and Multiagent Systems
ECCV (2+): European Conference on Computer Vision
ECML (2+): European Conference on Machine Learning
ICDM (2+): IEEE International Conference on Data Mining
SDM (2+): SIAM International Conference on Data Mining
ICAPS (2): International Conference on Automated Planning and Scheduling
ICCBR (2): International Conference on Case-Based Reasoning
COLLING (2): International Conference on Computational Linguistics
ECAI (2): European Conference on Artificial Intelligence
ALT (2-): International Conference on Algorithmic Learning Theory
EMNLP (2-): Conference on Empirical Methods in Natural Language Processing
ILP (2-): International Conference on Inductive Logic Programming
PKDD (2-): European Conference on Principles and Practice of Knowledge Discovery in Databases
*Impact factor (According to Citeseer 03):
ECCV :1.58 (top 7.20 %)
ECML :0.83 (top 30.63 %)
ICDM :0.35 (top 59.86 %)
ICCBR :0.72 (top 36.69 %)
ECAI :0.69 (top 38.49 %)
ALT :0.63 (top 42.91 %)
ILP :1.06 (top 20.80 %)
PKDD :0.50 (top 51.26 %)
Average:0.80 (top 32.02%)
AAMAS (2+): agent方面最好的会议. 但是现在agent已经是一个一般性的概念, 几乎所有AI有关的会议上都有这方面的内容, 所以AAMAS下降的趋势非常明显.
ECCV (2+): 计算机视觉方面仅次于ICCV的会议, 因为这个领域发展很快, 有可能 升级到1-去.
ECML (2+): 机器学习方面仅次于ICML的会议, 欧洲人极力捧场, 一些人认为它已经是1-了. 我保守一点, 仍然把它放在2+. 因为机器学习发展很快, 这个会议的reputation上升非常明显.
ICDM (2+): 数据挖掘方面仅次于SIGKDD的会议, 目前和SDM相当. 这个会只有5年历史, 上升速度之快非常惊人. 几年前ICDM还比不上PAKDD, 现在已经拉开很大距离了.
SDM (2+): 数据挖掘方面仅次于SIGKDD的会议, 目前和ICDM相当. SIAM的底子很厚, 但在CS里面的影响比ACM和IEEE还是要小, SDM眼看着要被ICDM超过了, 但至少目前还是相当的.
ICAPS (2): 人工智能规划方面最好的会议, 是由以前的国际和欧洲规划会议合并来的. 因为这个领域逐渐变冷清, 影响比以前已经小了.
ICCBR (2): Case-Based Reasoning方面最好的会议. 因为领域不太大, 而且一直半冷不热, 所以总是停留在2上.
COLLING (2): 计算语言学/自然语言处理方面仅次于ACL的会, 但与ACL的差距比ICCV-ECCV和ICML-ECML大得多.
ECAI (2): 欧洲的人工智能综合型会议, 历史很久, 但因为有IJCAI/AAAI压着,很难往上升.
ALT (2-): 有点象COLT的tier-2版, 但因为搞计算学习理论的人没多少, 做得好的数来数去就那么些group, 基本上到COLT去了, 所以ALT里面有不少并非计算学习理论的内容.
EMNLP (2-): 计算语言学/自然语言处理方面一个不错的会. 有些人认为与COLLING相当, 但我觉得它还是要弱一点.
IJCAI (1+): International Joint Conference on Artificial Intelligence AAAI (1): National Conference on Artificial Intelligence
COLT (1): Annual Conference on Computational Learning Theory
CVPR (1): IEEE International Conference on Computer Vision and Pattern Recognition
ICCV (1): IEEE International Conference on Computer Vision
ICML (1): International Conference on Machine Learning
NIPS (1): Annual Conference on Neural Information Processing Systems
ACL (1-): Annual Meeting of the Association for Computational Linguistics
KR (1-): International Conference on Principles of Knowledge Representation and Reasoning
SIGIR (1-): Annual International ACM SIGIR Conference on Research and Development in Information Retrieval
SIGKDD (1-): ACM SIGKDD International Conference on Knowledge Discovery and Data Mining
UAI (1-): International Conference on Uncertainty in Artificial Intelligence
*Impact factor (According to Citeseer 03):
IJCAI :1.82 (top 4.09 %)
AAAI :1.49 (top 9.17%)
COLT:1.49 (top 9.25%)
ICCV :1.78 (top 4.75%)
ICML :2.12 (top 1.88%)
NIPS :1.06 (top 20.96%)
ACL :1.44 (top 10.07%)
KR :1.76 (top 4.99%)
SIGIR :1.10 (top 19.08%)
Average:1.56 (top 8.02%)
IJCAI (1+): AI最好的综合性会议, 1969年开始, 每两年开一次, 奇数年开. 因为AI 实在太大, 所以虽然每届基本上能录100多篇(现在已经到200多篇了),但分到每个 领域就没几篇了,象achine learning、computer vision这么大的领域每次大概也 就10篇左右, 所以难度很大. 不过从录用率上来看倒不太低,基本上20%左右, 因为内 行人都会掂掂分量, 没希望的就别浪费reviewer的时间了. 最近中国大陆投往国际会 议的文章象潮水一样, 而且因为国内很少有能自己把关的研究组, 所以很多会议都在 complain说中国的低质量文章严重妨碍了PC的工作效率. 在这种情况下, 估计这几年 国际会议的录用率都会降下去. 另外, 以前的IJCAI是没有poster的, 03年开始, 为了 减少被误杀的好人, 增加了2页纸的poster.值得一提的是, IJCAI是由貌似一个公司 的”IJCAI Inc.”主办的(当然实际上并不是公司, 实际上是个基金会), 每次会议上要 发几个奖, 其中最重要的两个是IJCAI Research Excellence Award 和 Computer & Thoughts Award, 前者是终身成就奖, 每次一个人, 基本上是AI的最高奖(有趣的是, 以AI为主业拿图灵奖的6位中, 有2位还没得到这个奖), 后者是奖给35岁以下的 青年科学家, 每次一个人. 这两个奖的获奖演说是每次IJCAI的一个重头戏.另外, IJCAI 的 PC member 相当于其他会议的area chair, 权力很大, 因为是由PC member 去找 reviewer 来审, 而不象一般会议的PC member其实就是 reviewer. 为了制约 这种权力, IJCAI的审稿程序是每篇文章分配2位PC member, primary PC member去找 3位reviewer, second PC member 找一位.
AAAI (1): 美国人工智能学会AAAI的年会. 是一个很好的会议, 但其档次不稳定, 可 以给到1+, 也可以给到1-或者2+, 总的来说我给它”1″. 这是因为它的开法完全受 IJCAI制约: 每年开, 但如果这一年的 IJCAI在北美举行, 那么就停开. 所以, 偶数年 里因为没有IJCAI, 它就是最好的AI综合性会议, 但因为号召力毕竟比IJCAI要小一些, 特别是欧洲人捧AAAI场的比IJCAI少得多(其实亚洲人也是), 所以比IJCAI还是要稍弱 一点, 基本上在1和1+之间; 在奇数年, 如果IJCAI不在北美, AAAI自然就变成了比 IJCAI低一级的会议(1-或2+), 例如2005年既有IJCAI又有AAAI, 两个会议就进行了协 调, 使得IJCAI的录用通知时间比AAAI的deadline早那么几天, 这样IJCAI落选的文章 可以投往AAAI.在审稿时IJCAI 的 PC chair也在一直催, 说大家一定要快, 因为AAAI 那边一直在担心IJCAI的录用通知出晚了AAAI就麻烦了.
COLT (1): 这是计算学习理论最好的会议, ACM主办, 每年举行. 计算学习理论基本上可以看成理论计算机科学和机器学习的交叉, 所以这个会被一些人看成是理论计算 机科学的会而不是AI的会. 我一个朋友用一句话对它进行了精彩的刻画: “一小群数 学家在开会”. 因为COLT的领域比较小, 所以每年会议基本上都是那些人. 这里顺便 提一件有趣的事, 因为最近国内搞的会议太多太滥, 而且很多会议都是LNCS/LNAI出 论文集, LNCS/LNAI基本上已经被搞臭了, 但很不幸的是, LNCS/LNAI中有一些很好的 会议, 例如COLT.
CVPR (1): 计算机视觉和模式识别方面最好的会议之一, IEEE主办, 每年举行. 虽然题 目上有计算机视觉, 但个人认为它的模式识别味道更重一些. 事实上它应该是模式识 别最好的会议, 而在计算机视觉方面, 还有ICCV 与之相当. IEEE一直有个倾向, 要把 会办成”盛会”, 历史上已经有些会被它从quality很好的会办成”盛会”了. CVPR搞不好 也要走这条路. 这几年录的文章已经不少了. 最近负责CVPR会议的TC的chair发信 说, 对这个community来说, 让好人被误杀比被坏人漏网更糟糕, 所以我们是不是要减 少好人被误杀的机会啊? 所以我估计明年或者后年的CVPR就要扩招了.
ICCV (1): 介绍CVPR的时候说过了, 计算机视觉方面最好的会之一. IEEE主办, 每年举行.
ICML (1): 机器学习方面最好的会议之一. 现在是IMLS主办, 每年举行. 参见关于NIPS的 介绍.
NIPS (1): 神经计算方面最好的会议之一, NIPS主办, 每年举行. 值得注意的是, 这个会 每年的举办地都是一样的, 以前是美国丹佛, 现在是加拿大温哥华; 而且它是年底开会, 会开完后第2年才出论文集, 也就是说, NIPS’05的论文集是06年出. 会议的名字 “Advances in Neural Information Processing Systems”, 所以, 与ICML\ECML这样 的”标准的”机器学习会议不同, NIPS里有相当一部分神经科学的内容, 和机器学习有 一定的距离. 但由于会议的主体内容是机器学习, 或者说与机器学习关系紧密, 所以 不少人把NIPS看成是机器学习方面最好的会议之一. 这个会议基本上控制在Michael Jordan的徒子徒孙手中, 所以对Jordan系的人来说, 发NIPS并不是难事, 一些未必很 强的工作也能发上去, 但对这个圈子之外的人来说, 想发一篇实在很难, 因为留给”外 人”的口子很小. 所以对Jordan系以外的人来说, 发NIPS的难度比ICML更大. 换句话说, ICML比较开放, 小圈子的影响不象NIPS那么大, 所以北美和欧洲人都认, 而NIPS则有 些人(特别是一些欧洲人, 包括一些大家)坚决不投稿. 这对会议本身当然并不是好事, 但因为Jordan系很强大, 所以它似乎也不太care. 最近IMLS(国际机器学习学会)改选 理事, 有资格提名的人包括近三年在ICML\ECML\COLT发过文章的人, NIPS则被排除在 外了. 无论如何, 这是一个非常好的会.
ACL (1-): 计算语言学/自然语言处理方面最好的会议, ACL (Association of Computational Linguistics) 主办, 每年开.
KR (1-): 知识表示和推理方面最好的会议之一, 实际上也是传统AI(即基于逻辑的AI) 最好的会议之一. KR Inc.主办, 现在是偶数年开.
SIGIR (1-): 信息检索方面最好的会议, ACM主办, 每年开. 这个会现在小圈子气越来 越重. 信息检索应该不算AI, 不过因为这里面用到机器学习越来越多, 最近几年甚至 有点机器学习应用会议的味道了, 所以把它也列进来.
SIGKDD (1-): 数据挖掘方面最好的会议, ACM主办, 每年开. 这个会议历史比较短, 毕竟, 与其他领域相比,数据挖掘还只是个小弟弟甚至小侄儿. 在几年前还很难把它列 在tier-1里面, 一方面是名声远不及其他的 top conference响亮, 另一方面是相对容易 被录用. 但现在它被列在tier-1应该是毫无疑问的事情了.
UAI (1-): 名字叫”人工智能中的不确定性”, 涉及表示\推理\学习等很多方面, AUAI (Association of UAI) 主办, 每年开.
tier-2:
AAMAS (2+): International Joint Conference on Autonomous Agents and Multiagent Systems
ECCV (2+): European Conference on Computer Vision
ECML (2+): European Conference on Machine Learning
ICDM (2+): IEEE International Conference on Data Mining
SDM (2+): SIAM International Conference on Data Mining
ICAPS (2): International Conference on Automated Planning and Scheduling
ICCBR (2): International Conference on Case-Based Reasoning
COLLING (2): International Conference on Computational Linguistics
ECAI (2): European Conference on Artificial Intelligence
ALT (2-): International Conference on Algorithmic Learning Theory
EMNLP (2-): Conference on Empirical Methods in Natural Language Processing
ILP (2-): International Conference on Inductive Logic Programming
PKDD (2-): European Conference on Principles and Practice of Knowledge Discovery in Databases
*Impact factor (According to Citeseer 03):
ECCV :1.58 (top 7.20 %)
ECML :0.83 (top 30.63 %)
ICDM :0.35 (top 59.86 %)
ICCBR :0.72 (top 36.69 %)
ECAI :0.69 (top 38.49 %)
ALT :0.63 (top 42.91 %)
ILP :1.06 (top 20.80 %)
PKDD :0.50 (top 51.26 %)
Average:0.80 (top 32.02%)
AAMAS (2+): agent方面最好的会议. 但是现在agent已经是一个一般性的概念, 几乎所有AI有关的会议上都有这方面的内容, 所以AAMAS下降的趋势非常明显.
ECCV (2+): 计算机视觉方面仅次于ICCV的会议, 因为这个领域发展很快, 有可能 升级到1-去.
ECML (2+): 机器学习方面仅次于ICML的会议, 欧洲人极力捧场, 一些人认为它已经是1-了. 我保守一点, 仍然把它放在2+. 因为机器学习发展很快, 这个会议的reputation上升非常明显.
ICDM (2+): 数据挖掘方面仅次于SIGKDD的会议, 目前和SDM相当. 这个会只有5年历史, 上升速度之快非常惊人. 几年前ICDM还比不上PAKDD, 现在已经拉开很大距离了.
SDM (2+): 数据挖掘方面仅次于SIGKDD的会议, 目前和ICDM相当. SIAM的底子很厚, 但在CS里面的影响比ACM和IEEE还是要小, SDM眼看着要被ICDM超过了, 但至少目前还是相当的.
ICAPS (2): 人工智能规划方面最好的会议, 是由以前的国际和欧洲规划会议合并来的. 因为这个领域逐渐变冷清, 影响比以前已经小了.
ICCBR (2): Case-Based Reasoning方面最好的会议. 因为领域不太大, 而且一直半冷不热, 所以总是停留在2上.
COLLING (2): 计算语言学/自然语言处理方面仅次于ACL的会, 但与ACL的差距比ICCV-ECCV和ICML-ECML大得多.
ECAI (2): 欧洲的人工智能综合型会议, 历史很久, 但因为有IJCAI/AAAI压着,很难往上升.
ALT (2-): 有点象COLT的tier-2版, 但因为搞计算学习理论的人没多少, 做得好的数来数去就那么些group, 基本上到COLT去了, 所以ALT里面有不少并非计算学习理论的内容.
EMNLP (2-): 计算语言学/自然语言处理方面一个不错的会. 有些人认为与COLLING相当, 但我觉得它还是要弱一点.
怎样练习一万小时
30/07/12 08:41 Filed in: 学习
随着畅销书《异类》的流行,”练习一万小时“这个口号现在是人尽皆知。2006年,一本900多页的书,The Cambridge Handbook of Expertise and Expert Performance, 出版。这是“怎样炼成天才”研究的一本里程碑式的学术著作,此书直接引领了后来一系列畅销书的出现,包括格拉德威尔的《异类》,Geoff Colvin 的 Talent is Overrated,和 Daniel Coyle 的 The Talent Code 等等。科学家们不但证明了高手是练出来的,而且通过考察各个领域最好的训练方法的共性,总结了一套统一的练习方法,这就是所谓“刻意练习”(deliberate practice)。
刻意练习
首次提出“刻意练习”这个概念的是佛罗里达大学心理学家 K. Anders Ericsson。这套练习方法的核心假设是,专家级水平是逐渐地练出来的,而有效进步的关键在于找到一系列的小任务让受训者按顺序完成。这些小任务必须是受训者正好不会做,但是又正好可以学习掌握的。完成这种练习要求受训者思想高度集中,这就与那些例行公事或者带娱乐色彩的练习完全不同。“刻意练习”的理论目前已经被广泛接受,我们可以总结一下它的特点。
只在“学习区”练习
科学家们考察花样滑冰运动员的训练,发现在同样的练习时间内,普通的运动员更喜欢练自己早已掌握了的动作,而顶尖运动员则更多地练习各种高难度的跳。普通爱好者打高尔夫球纯粹是为了享受打球的过程,而职业运动员则集中练习在各种极端不舒服的位置打不好打的球。真正的练习不是为了完成运动量,练习的精髓是要持续地做自己做不好的事。
心理学家把人的知识和技能分为层层嵌套的三个圆形区域:最内一层是“舒适区”,是我们已经熟练掌握的各种技能;最外一层是“恐慌区”,是我们暂时无法学会的技能,二者中间则是“学习区”。只有在学习区里面练习,一个人才可能进步。有效的练习任务必须精确的在受训者的“学习区”内进行,具有高度的针对性。在很多情况下这要求必须要有一个好的老师或者教练,从旁观者的角度更能发现我们最需要改进的地方。
只在学习区练习,是一个非常强的要求。一般的学校课堂往往有几十人按照相同的进度学习知识,这种学习是没有针对性的。同样的内容,对某些同学来说是舒适区根本无需再练,而对某些学生则是恐慌区。科学教学必须因材施教,小班学习,甚至是一对一的传授。真正高手训练与其说是老师教学生,不如说是师傅带学徒。
大量重复训练。
从不会到会,秘诀是重复。美国加州有个“害羞诊所”(The Shyness Clinic),专门帮助那些比如说不敢和异性说话的人克服害羞心理。这个诊所的心理学家不相信什么心理暗示疗法,什么童年回忆之类,他们相信练习。他们认为使人害羞的并不是事情本身,而是我们对事情的观点。怎么治疗恐女症?做法是设计各种不同难度的场合进行对话训练。最初是在房间内集体对话,角色扮演。然后是到直接跑到大街上找陌生美女搭讪要求约会。最高难度是有意在公共场合做出使自己难堪的事情,比如去超市把一个西瓜掉在地上摔坏。
这种把不常见的高难度事件重复化的办法正是MBA课程的精髓。在商学院里一个学生每周可能要面对20个真实发生过的商业案例,学生们首先自己研究怎么决策,提出解决方案,最后老师给出实际的结果并作点评。学习商业决策的最好办法不是观察老板每个月做两次决策,而是自己每周做20次模拟的决策。军事学院的模拟战,飞行员在计算机上模拟各种罕见的空中险情,包括丘吉尔对着镜子练习演讲,都是重复训练。
在体育和音乐训练中,比较强调“分块”练习。首先你要把整个动作或者整首曲子过一遍,看专家是怎么做的。然后把它分解为很多小块,一块一块地学习掌握。在这种训练中一定要慢,只有慢下来才能感知技能的内部结构,注意到自己的错误。在美国一所最好的小提琴学校里,甚至有禁止学生把一支曲子连贯地演奏的要求,规定如果别人听出来你拉的是什么曲子,那就说明你没有正确练习。职业的体育训练往往是针对技术动作,而不是比赛本身。一个高水平的美式足球运动员只有1%的时间用于队内比赛,其他都是各种相关的基础训练。
反过来说如果没有这种事先的重复训练,一个人面对不常见的事件往往会不知所措。统计表明工作多年的医生通过读X光片诊断罕见病症的水平反而不如刚毕业的医学院学生 — 因为很少遇到这种病例,而在医学院学到的东西早就忘了。最好的办法其实是定期地让医生们拿过去的旧X光片集中训练,而不是期待在工作中碰到。
持续获得有效的反馈。
传道,授业,解惑,老师和教练最大的用处是什么?也许对一般人来说小学老师最大的作用是激发了他学习的兴趣,教会了他什么东西,曾经有过传道授业解惑。而真正的高手都有很强的自学能力,对他们而言,老师和教练的最重要作用是提供即时的反馈。
一个动作做得好与不好,最好有教练随时指出,本人必须能够随时了解练习结果。看不到结果的练习等于没有练习:如果只是应付了事,你不但不会变好,而且会对好坏不再关心。在某种程度上,刻意练习是以错误为中心的练习。练习者必须建立起对错误的极度敏感,一旦发现自己错了会感到非常不舒服,一直练习到改正为止。
从训练的角度,一个真正好教练是什么样的?John Wooden 是美国最具传奇色彩的大学篮球教练,他曾经率领 UCLA 队在12年内10次获得 NCAA 冠军。为了获得 Wooden 的执教秘诀,两位心理学家曾经全程观察他的训练课,甚至记录下了他给球员的每一条指令。结果统计表明,在记录的2326条指令之中, 6.9%是表扬,6.6%是表示不满,而有75% 是纯粹的信息,也就是做什么动作和怎么做。他最常见的办法是三段论:演示一遍正确动作,表现一遍错误动作,再演示一遍正确动作。
与外行想象的不同,最好的教练从不发表什么激情演说,甚至不讲课,说话从不超过20秒。他们只给学生非常具体的即时反馈。所有训练都事先进行无比详细的计划,甚至包括教运动员怎么系鞋带。他们仿佛有一种诡异的知道学员在想什么的能力,即使是第一次见面能指出学生在技术上最需要什么。他们是绝对的因材施教,源源不断地提供高度具有针对性的具体指导。
获得反馈的最高境界是自己给自己当教练。高手工作的时候会以一个旁观者的角度观察自己,每天都有非常具体的小目标,对自己的错误极其敏感,并不断寻求改进。
精神高度集中。
刻意练习没有“寓教于乐”这个概念。曾经有个著名小提琴家说过,如果你是练习手指,你可以练一整天;可是如果你是练习脑子,你每天能练两个小时就不错了。高手的练习每次最多1到1.5小时,每天最多4到5小时。没人受得了更多。一般女球迷可能认为贝克汉姆那样的球星很可爱,她们可能不知道的是很少有球员能完成贝克汉姆的训练强度,因为太苦了。
科学家们曾经调查研究了一个音乐学院。他们把这里的所有小提琴学生分为好(将来主要是做音乐教师),更好,和最好(将来做演奏家)三个组。这三个组的学生 在很多方面都相同,比如都是从8岁左右开始练习,甚至现在每周的总的音乐相关活动(上课,学习, 练习)时间也相同,都是51个小时。
研究人员发现,所有学生都了解一个道理:真正决定你水平的不是全班一起上的音乐课,而是单独练习: - 最好的两个组学生平均每周有24小时的单独练习,而第三个组只有9小时。 - 他们都认为单独练习是最困难也是最不好玩的活动。 - 最好的两个组的学生利用上午的晚些时候和下午的早些时候单独练习,这时候他们还很清醒;而第三个组利用下午的晚些时候单独练习,这时候他们已经很困了。 - 最好的两个组不仅仅练得多,而且睡眠也多。他们午睡也多。
那么是什么因素区分了前两个组呢?是学生的历史练习总时间。到18岁,最好的组中,学会平均总共练习了7410小时,而第二组是 5301小时,第三组 3420小时。第二组的人现在跟最好的组一样努力,可是已经晚了。可见要想成为世界级高手,一定要尽早投入训练,这就是为什么天才音乐家都是从很小的时候就开始苦练了。
人脑的学习原理
现代神经科学和认知科学认为,几乎没有任何技能是人一出生就会的。哪怕是对简单物体的识别,把东西抓取过来这些简单的动作,也是婴儿后天学习的结果。一个人一出生的时候根本不可能预见到将来自己需要什么技能,基因不可能把一切技能都用遗传的方法事先编程,那样的话太浪费大脑的存储空间。最好的办法是不预设任何技能,只提供一个能够学习各种技能的能力,这就是人脑的巧妙之处。基因的做法是先预设一些对刺激的基本反应和感觉,比如看见好吃的东西我们会饿等等。这些基本的反应需要调动的神经较少。但对于更高级别的技能,比如演奏音乐,需要协调调动很多神经,就必须靠后天学习了。
人的任何一个技能,都是大脑内一系列神经纤维传递的电脉冲信号的组合。解剖表明拥有不同技能的人,其大脑的神经结构非常不同,比如出租车司机大脑内识别方向的区域就特别发达。也就是说与计算机不同,人对于技能的掌握是在大脑硬件层次实现的。
而最近有一派科学家认为,髓磷脂是技能训练的关键,它的作用是像胶皮把电线包起来一样,把这些神经纤维给包起来,通过防止电脉冲外泄而使得信号更强,更快,更准确。不管练习什么,我们都是在练习大脑中的髓磷脂,就好像把一堆杂乱无章的电线被排列整齐变成电缆。直到2000年新技术允许科学家直接观察活体大脑内的髓磷脂之后,髓磷脂的作用才被发现,而且一直到2006年才第一次被在学术期刊上说明。科学家认为髓磷脂是脑神经的高速公路,提高信号传递速度,并且可以把延迟时间减少30倍,总共提速3000倍,甚至可以控制速度,想慢就慢。
人脑之中分布着大量“自由的”髓磷脂,它们观测脑神经纤维的信号发射和组合,哪些神经纤维用的越多,它们就过去把这一段线路给包起来,使得线路中的信号传递更快,形成高速公路。这就是为什么练习是如此重要。
髓磷脂理论可以解释很多事情。比如为什么小孩常会犯错?他们的神经系统都在,也知道对错,只是需要时间去建立起来髓磷脂的高速网络。为什么习惯一旦养成不容易改变?因为所谓“习惯”,其实是以神经纤维电缆组合的形式“长”在大脑之中的,髓磷脂一旦把神经包起来,它不会自动散开 — 改变习惯的唯一办法是形成新习惯。为什么年轻人学东西快?因为尽管人的一生之中髓磷脂都在生长,但年轻人生长得最快。最激进的理论则认为人跟猴子的最显著区别不在于脑神经元的多少,而在于人的髓磷脂比猴子多20%!解剖表明,爱因斯坦的大脑中的神经元数量是平均水平,但他拥有更多能够产生髓磷脂的细胞。
谁愿意练习一万小时?
看了钢琴家朗朗的传记之后,可能很多人会怀疑是否真的应该让孩子接受这样的苦练。实际上,顶级运动员都是穷人家的孩子。不练这一万小时,一定成不了高手,但问题是考虑到机遇因素练了这一万小时也未必成功。
这就是兴趣的作用了。如果说有什么成功因素是目前科学家无法用后天训练解释的,那就是兴趣。有的孩子似乎天生就对某一领域感兴趣。感兴趣并不一定说明他能做好,就算不感兴趣只要愿意练,也能练成。兴趣最大的作用是让人愿意在这个领域内苦练。
不论如何,刻意练习是个科学方法,值得我们把它运用到日常工作中去。显然我们平时中做的绝大多数事情都不符合刻意练习的特点,这可能就是为什么大多数人都没能成为世界级高手。天才来自刻意练习。
斯坦福课程
28/07/12 10:46
斯坦福抽象编程: http://www.stanford.edu/class/cs106b/
http://www.stanford.edu/class/cs106b/
http://www.stanford.edu/class/cs106b/
斯坦福Java编程: http://www.stanford.edu/class/cs108/
http://www.stanford.edu/class/cs106b/
http://www.stanford.edu/class/cs106b/
斯坦福Java编程: http://www.stanford.edu/class/cs108/