科学网

 找回密码
  注册
科学网 标签 深度学习 相关日志

tag 标签: 深度学习

相关日志

【IJAC热文】北京大学黄铁军:走向通用人工智能的“新”方法
热度 2 Chenfiona 2017-6-6 18:36
走向通用人工智能,到底是先“理解智能”还是先“制造智能”? 近期,在IJAC优先在线发表的几篇论文中, 北京大学黄铁军 教授的综述成为近两月优先发表论文中的亮点之一。 黄铁军教授在这篇综述中提出的“仿真主义”(Imitationalism)可谓人工智能方法中第五的流派! (熟悉人工智能的小伙伴可能都了解:人工智能的基本思想大致可划分为四个流派:符号主义、链接主义、行为主义和统计主义) 文章不仅阐述了如何打破走向通用人工智能的研究僵局、探索研制类脑神经计算机的新思路,还详细描述了类脑神经计算机三个重要技术层次和国内外研究进展。与IJAC 4月优先在线发表的麻省理工美国人文科学院院士Tomaso Poggio 教授关于深度学习机理的文章一样,本篇综述绝对是 行业宝典 !且此综述已在Twitter被相关学者转发数次。 通用人工智能(Artificial General Intelligence, AGI)指可以像人一样完成各种智能任务的类人智能机器,AGI又称为Srong AI或fullAI. 为了获得通用人工智能,到底是先“理解智能”? (即理解意识现象和功能背后的发生机理) 还是先“制造智能” (即研制类似人脑的具有自我意识的智能机器)? ——这是一个问题! 传统人工智能的思维定式是在“理解智能”机理的基础上设计制造人工智能系统,即先理解智能再模仿智能。然而人类对自身智能的认识还处在初级阶段,在对人类智能的理解还极其有限,“理解智能”这个终极性问题到底数十年还是数百年亦或数千年才能解决?都还是未知数。因此,把“制造智能”寄希望于“理解智能”,实质上把解决问题的方案建立在解决另一个更难问题的基础上,犯了本末倒置的错误。 (图片来自于网络) 如果我们跳出传统思维的窠臼,就会发现通向通用人工智能还有一条“ 新 ” 路线——构建 类脑神经计算机 ,这里称为“仿真主义”(Imitationalism)。说这是一条新路线,是因为它反转了“理解智能”和“制造智能”的前后关系:即我们不再寻求“理解智能”的解,而是先模仿脑,即设计更先进的探测分析工具, 从结构上解析大脑 ,再利用工程技术手段“照葫芦画瓢”式地 构造仿脑装置 ,最后 通过环境刺激和交互训练“仿真大脑”,实现类人智能 。 简言之: 先结构后功能 。 (图片来自于网络) 本篇文章阐述了“先结构后功能”的类脑计算的 三层技术路线 :结构层次模仿脑、器件层次逼近脑,智能层次超越脑;还分析了在获得通用人工智能时, 神经计算机相比传统计算机的优势、生物神经网络相比人工神经网络的优势 ,并综述了国际学者在神经计算机领域的研究进展 。 精彩内容请下载原文阅读,这正是: 人工智能一甲子,结构功能两相争; 符号系统Top down,神经网络向上攻; 进化主义玩互动,机器学习调模型; 欲破智能千古谜,先剖大脑再人工。 ——来源:《中国计算机学会通讯》2017年1月,作者黄铁军 文章免费下载信息: 【 Title 】 Imitatingthe brain with neurocomputer a “new” way towards artificial generalintelligence 【 Author 】 Tie-Jun Huang 【 Abstract 】 To achieve the artificial generalintelligence (AGI), imitate the intelligence? or imitate the brain? This is thequestion! …. To achieve AGI, a practical approach is to build the so-calledneurocomputer, which could be trained to produce autonomous intelligence andAGI. A neurocomputer imitates the biological neural network with neuromorphicdevices which emulate the bio-neurons, synapses and other essential neuralcomponents. The neurocomputer could perceive the environment via sensors andinteract with other entities via a physical body. The philosophy under the“new” approach, so-called as imitationalism in this paper, is the engineeringmethodology which has been practiced for thousands of years, and for manycases, such as the invention of the first airplane, succeeded. This papercompares the neurocomputer with the conventional computer. The major progressabout neurocomputer is also reviewed. 【 Keywords 】 Artificial general intelligence (AGI), neuromorphic computing, neurocomputer, brain-likeintelligence, imitationalism 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-017-1082-y 5-6 月优先在线发表的计算方向论文还有如下,欢迎阅读 【 Title 】 Stability analysis of an underactuatedautonomous underwater vehicle using extended-Routh’s stability method 【 Author 】 Basant Kumar Sahu,Bidyadhar Subudhi, Madan Mohan Gupta 【 Keywords 】 Routh’s stability, extended-Routh’s stability, autonomousunderwater vehicle (AUV), underactuated system, underwater robots 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-016-0992-4 【 Title 】 Layered software patterns for data analysisin big data environment 【 Author 】 Hossam Hakeem 【 Keywords 】 Big data, data analysis, patterns layered,structure data modelling 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-016-1043-x 【 Title 】 Multi-sensor data fusion for wheelchairposition estimation with unscented Kalman filter 【 Author 】 Derradji Nada, MounirBousbia-Salah, Maamar Bettayeb 【 Keywords 】 Data fusion, unscented Kalman filter(UKF) , measurement fusion (MF), navigation, state vector fusion(SVF) , wheelchair 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-017-1065-z 【 Title 】 Evaluation method of the gait motion based onself-organizing map using the gravity center fluctuation on the sole 【 Author 】 Koji Makino, MasahiroNakamura, Hidenori, Omori, et al. 【 Keywords 】 Gait motion, self-organizing map (SOM), rehabilitation, evaluationmethod, gravity center fluctuation (GCF) 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-016-1045-8 【 Title 】 Low-latency data gathering with reliabilityguaranteeing in heterogeneous wireless sensor networks 【 Author 】 Tian-Yun Shi, Jian Li, Xin-ChunJia, et al. 【 Keywords 】 Heterogeneous wireless sensor networks (HWSNs), datagathering tree, multi-channel, power assignment, linkscheduling 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-017-1074-y 【 Title 】 Recursive Bayesian algorithm foridentification of systems with non-uniformly sampled input data 【 Author 】 Shao-Xue Jing, Tian-HongPan, Zheng-Ming Li 【 Keywords 】 Parameter estimation, discrete time systems, Gaussiannoise, Bayesian algorithm, covariance resetting 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-017-1073-z 点击阅读“人工智能”相关推文 【IJAC热文】MITTomaso Poggio教授探讨深度学习机理 http://mp.weixin.qq.com/s/AwmQyhREjpIew0beIuj6yA 【IJAC推文】周志华、吴建鑫等关于循环神经网络的最新研究成果 http://mp.weixin.qq.com/s/S_7TPZ-QiIHkki2l-KAtDg 【IJAC推文】颜水成团队解读“高智商”机器人的终极杀器——深度学习 http://mp.weixin.qq.com/s/KRBTTycNve3GY8T9AkvoSA
个人分类: 好文推荐|711 次阅读|2 个评论
1070+cuda8+cudnn5.1+opencv3.1+caffe+fasterrcnn配置文档
apollocv 2017-6-2 09:10
1070+cuda8+cudnn5.1+opencv3.1+caffe+fasterrcnn 配置文档 一、系统安装及联网 到 ununtu 官网上下载 ubuntu14.04.iso 文件,然后准备一个空的 u 盘,制作启动盘,百度怎么用 u 盘安装 ubuntu 。 安装时要注意分配硬盘空间,保证 home 目录尽量大,其他的参考百度。 安装时调到 bios 界面,选择从 usb 启动(就是从 u 盘启动) 安装完成后要联网:设置 ipv4 为: IP : 202.114.114.250 NetMask:255.255.255.0 Gateway:202.114.114.114 DNS Servers:202.114.96.1,202.103.24.68 部分安装过程中需要用到的软件包和链接地址在白色硬盘的 pack.zip 中。 第一部分 nVidiaCUDA Toolkit 的安装( *.deb 方法) PS :特别推荐 *.deb 的方法,目前已提供离线版的 deb 文件,该方法比较简单,不需要切换到 tty 模式,因此不再提供原来的 *.run 安装方法,这里以 CUDA 7.5 为例。 一、 CUDARepository 获取 CUDA 安装包 , 安装包请自行去 NVidia 官网下载。( https://developer.nvidia.com/cuda-downloads ) Installation Instructions: `sudo dpkg -i cuda-repo-ubuntu1404-8-0-local_8.0.44-1_amd64.deb` `sudo apt-get update` `sudo apt-get install cuda` 第二部分 Matlab 安装和调试(以 Matlab 2014a 为例) 1. 下载 由于该软件为商业软件,请大家自行寻找,安装学习,并确保不使用做商业目的,下载 24 小时删除 ...... 2. 预准备 选择 Mathworks.Matlab.R2014a.Unix.iso- 右键 - 使用磁盘映像挂载器打开 ” ,进入装载的虚拟光盘,拷贝全部文件至 home/Matlab 文件夹 (PS :我的原则是能 GUI 就 GUI ,喜欢 CMD 的可以参照执行 ) 复制 Crack/install.jar 至 home/Matlab/java/jar/ 并覆盖源文件 $ sudo cp install.jar /home/Matlab/java/jar/ 3. 授权安装文件夹 $ chmod a+x Matlab -R 4. 安装 $ sudo ./install 选项:不使用 Internet 安装 序列号: 12345-67890-12345-67890 默认路径: /usr/local/MATLAB/R2014a 勾选从默认启动路径创建符号链接(实现在任意位置运行 matlab 启动程序) 激活文件: license_405329_R2014a.lic 拷贝 libmwservices.so 至 /usr/local/MATLAB/R2014a/bin/glnxa64 $ sudo cp libmwservices.so/usr/local/MATLAB/R2014a/bin/glnxa64/ 5. 解决编译器 gcc/g++ 版本问题。 因为 Ubuntu15.04 的 gcc/g++ 版本是 4.9.2 ,而 Matlab 2014a ( 2015a )的版本是 4.7.x 所以在使用 matla 调用 mex 文件的时候,基本上都会报错,根据报错信息,考虑如下两步解决方案。 A. 降级安装 gcc/g++ 版本为 4.7.x (a). 下载 gcc/g++ 4.7.x $ sudo apt-get install -y gcc-4.7 $ sudo apt-get install -y g++-4.7 (b). 链接 gcc/g++ 实现降级 $ cd /usr/bin $ sudo rm gcc $ sudo ln -s gcc-4.7 gcc $ sudo rm g++ $ sudo ln -s g++-4.7 g++ B. 暴力引用新版本 GLIBCXX_3.4.20 $sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20/usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.20 ( libstdc++.so.6.0.20 的版本,可能因为系统不同而不同,使用最新的就可以了。) 目录切换到 /usr/local/MATLAB/R2014a/sys/os/glnxa64/ ,非常重要! $ sudo mv libstdc++.so.6libstdc++.so.6.backup (仅仅是备份,可以不备份,直接删除)。 $ sudo ln -s libstdc++.so.6.0.20libstdc++.so.6 $ sudo ldconfig -v 通过命令 “strings/usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已经成功包含了 GLIBCXX_3.4.21 ,如果已经存在,基本上就成功了。 6. 编译 Matlab 用到的 caffe 文件(见第五部分) 第三部分 Caffe-Master 的安装和测试 对于 Caffe 的安装严格遵照官网的要求来: http://caffe.berkeleyvision.org/installation.html 一、安装 BLAS 这里可以选择( ATLAS , MKL 或者 OpenBLAS ),我这里使用 MKL ,首先下载并安装英特尔 数学内核库 Linux* 版 MKL(Intel(R) Parallel Studio XECluster Edition for Linux 2016) ,下载链接是: https://software.intel.com/en-us/intel-education-offerings , 使用学生身份(邮件 + 学校)下载 Student 版,填好各种信息,可以直接下载,同时会给你一个邮件告知序列号( 2JXL-2VTGZM8R )。下载完之后,要把文件解压到 home 文件夹 ( 或直接把 tar.gz 文件拷贝到 home 文件夹 , 为了节省空间,安装完记得把压缩文件给删除喔~ ) ,或者其他的 ext4 的文件系统中。 很多人说,下载不了,本人于 2105 年 11 月 8 日使用该地址下载最新的 2016 版本,仍然没有问题,请大家细心操作 ^_^ 。 接下来是安装过程,先授权,然后安装: $ tar zxvf parallel_studio_xe_2016.tar.gz (如果你是直接拷贝压缩文件过来的) $ chmod a+x parallel_studio_xe_2016 -R $ sh install_GUI.sh PS: 安装的时候,建议使用 root 权限安装,过程中会要求输入 Linux 的 root 口令。(设置方法:命令行: $ sudo passwd ) 二、 MKL 与 CUDA 的环境设置 1. 新建 intel_mkl.conf , 并编辑之: $ sudo gedit/etc/ld.so.conf.d/intel_mkl.conf /opt/intel/lib/intel64 /opt/intel/mkl/lib/intel64 2. 新建 cuda.conf ,并编辑之: $ sudo gedit /etc/ld.so.conf.d/cuda.conf /usr/local/cuda/lib64 /lib 3. 完成 lib 文件的链接操作,执行: $ sudo ldconfig -v 三、安装 OpenCV 3.1.0 1. 下载并编译 OpenCV (官网原版 OpenCV : http://opencv.org/ ), 或者使用我提供的修改版的安装包 ( 前面的百度云下载 ) 安装 opencv3.1 sudo apt-get installlibprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-devprotobuf-compiler 1 1 去 官网 下载一个 opencv 。然后解压出来。 sudo /bin/bash -c 'echo/usr/local/lib /etc/ld.so.conf.d/opencv.conf' sudo ldconfig find / -name “cv2.so” gedit ~/.bashrc cv2.so /home/apollo/opencv/lib export PYTHONPATH=/home/apollo/opencv/lib:$PYTHONPATH source~/.bashrc 四、安装其他依赖项 1. Google Logging Library ( glog ),下载地址: https://code.google.com/p/google-glog/ ,然后解压安装: $ tar zxvf glog-0.3.3.tar.gz $ ./configure $ make $ sudo make install 如果没有权限就 chmoda+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以 kill 了。 2. 其他依赖项,确保都成功 $ sudo apt-get install -y libprotobuf-devlibleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-devlibgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compilerprotobuf-c-compiler protobuf-compiler 五、安装 Caffe 并测试 0. 安装 protobuf $wgethttps://github.com/google/protobuf/archive/v2 .6.1 .zip $unzip protobuf- 2.6.1 .zip $cd protobuf- 2.6.1 下载自 github 的代码需要首先执行 $ ./autogen.sh 生成 configure 文件 $ ./configure $ make $ make check $ make install 我使用的是 centos 系统 usr/local/bin usr/local/lib, usr/local/include 是也系统默认路径之一,所以到这一步就可以使用 protobuf 了 $ protoc - I =./ --cpp_out=./test.proto 到你的 test.proto 文件所在目录使用命令 protoc - I =./ --cpp_out=./ 生成 C ++ 版本的协议文件 一切 OK 的话,你回在当前目录看到 .h 和 .cc 文件 1. 安装 pycaffe 必须的一些依赖项: $ sudo apt-get install -y python-numpypython-scipy python-matplotlib python-sklearn python-skimage python-h5pypython-protobuf python-leveldb python-networkx python-nose python-pandaspython-gflags Cython ipython 2. 安装配置 nVidia cuDNN 加速 Caffe 模型运算 a. 安装前请去先官网下载最新的 cuDNN (cudnn-7.0-linux-x64-v4.0-prod) 。 $ sudo cp include/cudnn.h /usr/local/include $ sudo cp lib64/libcudnn.* /usr/local/lib b. 链接 cuDNN 的库文件 $sudo ln -sf /usr/local/lib/libcudnn.so.4.0.7 /usr/local/lib/libcudnn.so.4 $ sudo ln -sf /usr/local/lib/libcudnn.so.4/usr/local/lib/libcudnn.so $ sudo ldconfig -v 3. 切换到 Caffe-master 的文件夹,生成 Makefile.config 配置文件,执行: $ cp Makefile.config.example Makefile.config 4. 配置 Makefile.config 文件(仅列出修改部分) a. 启用 CUDNN ,去掉 # USE_CUDNN := 1 b. 配置一些引用文件(增加部分主要是解决新版本下, HDF5 的路径问题) INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib/usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial c. 启用 Intel Parallel Studio XE 2016 BLAS := mkl d. 配置路径,实现 caffe 对 Python 和 Matlab 接口的支持 PYTHON_LIB := /usr/local/lib MATLAB_DIR := /usr/local/MATLAB/R2014a c. 启用 OpenCV 3.0, 去掉 # OPENCV_VERSION =3 6. 编译 caffe-master !!! -j16 是使用 CPU 的多核进行编译,可以极大地加速编译的速度,建议使用。 $ make all -j16 $ maketest -j16 $ makeruntest -j16 编译 Python 和 Matlab 用到的 caffe 文件 $ makepycaffe -j16 $ make matcaffe -j16 六、使用 MNIST 数据集进行测试 Caffe 默认情况会安装在 $CAFFE_ROOT ,就是解压到那个目录,例如: $ home/username/caffe-master ,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试 Caffe 是否工作正常,不做详细评估。具体设置请参考官网: http://caffe.berkeleyvision.org/gathered/examples/mnist.html 1. 数据预处理 $ sh data/mnist/get_mnist.sh 2. 重建 lmdb 文件。 Caffe 支持多种数据格式输入网络,包括 Image(.jpg, .png 等 ) , leveldb , lmdb , HDF5 等,根据自己需要选择不同输入吧。 $ sh examples/mnist/create_mnist.sh 生成 mnist-train-lmdb 和 mnist-train-lmdb 文件夹,这里包含了 lmdb 格式的数据集 3. 训练 mnist $ sh examples/mnist/train_lenet.sh 三、安装 faster-rcnn 复制 py-faster-rcnn-person 文件夹,然后要删除一些文件: 1 、 lib/datasets/ 里的 pascal_voc.pyc 和 imdb.pyc 2 、 output/ 里的 faster_rcnn_alt_opt 文件夹 3 、 data 里的 cache 文件夹 4 、如果不用行人的数据,而是换了数据的话,就要删除 data/vocdevkit2007 里的 annotations_cache 。 5 、把 model 文件夹删除,换成 py-faster-rcnn 文件夹(就是官网上下的没有换过数据的 faster-rcnn )里的那个 model 。 然后要把之前 caffe 里的那个 makefile.config 复制到 caffe_fast_rcnn 文件夹下面。 注意要把: WITH_PYTHON_LAYER:=1 放开 mkdirbuild cdbuild cmake.. make all -j16 makeruntest -j16 (报错也没关系) $ make pycaffe -j16 编译 Python 和 Matlab 用到的 caffe 文件 Sudo apt-get install python-pip Pip install easydict 一、修改调用文件 1 、 prototxt 配置文件 models/pascal_voc/ZF/faster_rcnn_alt_opt 文件夹下的 5 个文件,分别为 stage1_rpn_trainNaN 、 stage1_fast_rcnn_trainNaN 、 stage2_rpn_trainNaN 、 stage2_fast_rcnn_trainNaN 和 fast_rcnn_testNaN ,修改格式如下: (1)stage1_fast_rcnn_trainNaN 和 stage2_fast_rcnn_trainNaN 修改参数 num_class:2 (识别 1 类 + 背景 1 类), cls_score 中 num_output : 2 , bbox_pred 中 num_output : 8 。(只有这 3 个) (2)stage1_rpn_trainNaN 和 stage2_rpn_trainNaN 修改参数 num_class:2 (识别 1 类 + 背景 1 类) (3)fast_rcnn_testNaN 修改参数: cls_score 中 num_output : 2 , bbox_pred 中 num_output : 8 ( 只有这 2 个) 2 、 修改 lib/datasets/pascal_voc.py self._classes = ('__background__', # alwaysindex 0 'person' ) (只有这一类) 3 、修改 lib/datasets/imdb.py 数据整理,在一行代码为 boxes = widths - oldx1 - 1 下加入代码: for b in range(len(boxes)): if boxes boxes : boxes = 0 4 、修改完 pascal_voc.py 和 imdb.py 后进入 lib/datasets 目录下 删除 原来的 pascal_voc.pyc 和 imdb.pyc 文件, 重新生成 这两个文件,因为这两个文件是 python 编译后的文件,系统会直接调用。 终端进入 lib/datasets 文件目录输入: python ( 此处应出现 python 的版本 ) importpy_compile py_compile.compile(r'imdb.py') py_compile.compile(r'pascal_voc.py') 二、训练自己的数据 终端进入 py-faster-rcnn 下输入: ./experiments/scripts/faster_rcnn_alt_opt.sh0ZF pascal_voc 如果执行错: cv2 importERROR : apt-get installpython-opencv yaml importError: apt-get install python-yaml 三、 demo 自己刚刚生成的 ZF_models 1 、训练完成之后,将 output/faster_rcnn_alt_opt/voc_2007_trainval 中的最终模型 ZF_faster_rcnn_final.caffemodel 拷贝到 data/faster_rcnn_models (删除以前生成类似的 model )中。 2 、修改 /tools/demo.py 为: (1) CLASSES =('__background__', 'people' ) (只有这两类) (2) NETS ={'vgg16': ('VGG16', 'VGG16_faster_rcnn_final.caffemodel'), 'zf': ('ZF', 'ZF_faster_rcnn_final.caffemodel' )} (3) 在训练集图片中找一张出来放入 py-faster-rcnn/data/demo 文件夹中,命名为 000001.jpg 。 im_names = (只需这一类图片的一张,其他删除或注销) for im_name in im_names: print'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' print'Demo for data/demo/{}'.format(im_name) demo(net, im_name) 3 、运行 demo ,即在 py-faster-rcnn 文件夹下终端输入: ./tools/demo.py --net zf 结果如图: 四. Cpu 运行 faster rcnn 1. 在一切都正常的情况下,对 caffe-fast-rcnn 进行 make 和 make pycaffe 的结果如下: 编译好 caffe-fast-rcnn 后,在 py-faster-rcnn/lib 中执行 make 命令: bigtop@bigtop-SdcOS-Hypervisor:~/py-faster-rcnn/lib$ make python setup.py build_ext --inplace running build_ext skipping 'utils/bbox.c' Cython extension(up-to- date ) skipping 'nms/cpu_nms.c' Cython extension(up-to- date ) skipping 'pycocotools/_mask.c' Cython extension (up-to- date ) rm -rf build bigtop@bigtop-SdcOS-Hypervisor:~/py-faster-rcnn/lib$ 2 在安装配置好 caffe-fast-rcnn 后,修改 py-faster-rcnn 相关配置,让其模型可以在没有 GPU 的环境下运行: A 将 ~/py-faster-rcnn/lib/fast_rcnn/config.py 的如下内容: B 将 ~/py-faster-rcnn/tools/test_net.py 和 ~/py-faster-rcnn/tools/train_net.py 的 caffe.set_mode_gpu() 修改为 caffe.set_mode_cpu(). C 将 ~/py-faster-rcnn/lib/setup.py 中,含有 'nms.gpu_nms’ 的部分去掉,去掉后的内容如下: 112 ext_modules = , 116 extra_compile_args={ 'gcc' : }, 117 include_dirs = 118 ), 119 Extension( 120 nms.cpu_nms , 121 , 122 extra_compile_args={ 'gcc' : }, 123 include_dirs = 124 ), 125 Extension( 126 'pycocotools._mask' , 127 sources= , 128 include_dirs = , 129 extra_compile_args={ 130 'gcc' : }, 131 ), 132 ] D 做到上面三部后,还是不够的,还需要将: ../lib/fast_rcnn/nms_wrapper.py:9: #from nms.gpu_nms import gpu_nms 注释掉: 否则,会抛出如下的异常: Traceback (most recent call last ): File ./demo.py , line 18 , in from fast_rcnn.test import im_detect File .../py-faster-rcnn-master/tools/../lib/fast_rcnn/test.py , line 17 , in from fast_rcnn.nms_wrapper import nms File .../py-faster-rcnn-master/tools/../lib/fast_rcnn/nms_wrapper.py , line 11 , in from nms.gpu_nms import gpu_nms ImportError: No module named gpu_nms 3. 修改 train_faster_rcnn_alt_opt.py: 1 )下列语句: 修改为: 2 )下列语句 修改为: 4. 打开 faster_rcnn_alt_opt.sh 1) 找到下列语句: 修改为: 3. 训练 : 终端进入 py-faster-rcnn 下输入: ./experiments/scripts/faster_rcnn_alt_opt.sh ZF pascal_voc 五. ipython notebook for ubuntu14.04 安装步骤(真的超级简单) 1. 环境 操作系统: ubuntu 14.04 / 尤麒麟 2. 操作步骤 a) 安装 pip 工具 终端输入以下命令: sudo apt-get install python-pip b) 安装 ipython 终端输入以下命令: sudo apt-get install ipython c) 安装 ipython 终端输入以下命令: sudo apt-get install ipython-notebook d) 启动 ipython 终端输入以下命令: ipython notebook
3095 次阅读|0 个评论
1070+cuda8+cudnn5.1+opencv3.1+caffe+fasterrcnn配置文档
apollocv 2017-6-2 09:09
1070+cuda8+cudnn5.1+opencv3.1+caffe+fasterrcnn 配置文档 一、系统安装及联网 到 ununtu 官网上下载 ubuntu14.04.iso 文件,然后准备一个空的 u 盘,制作启动盘,百度怎么用 u 盘安装 ubuntu 。 安装时要注意分配硬盘空间,保证 home 目录尽量大,其他的参考百度。 安装时调到 bios 界面,选择从 usb 启动(就是从 u 盘启动) 安装完成后要联网:设置 ipv4 为: IP : 202.114.114.250 NetMask:255.255.255.0 Gateway:202.114.114.114 DNS Servers:202.114.96.1,202.103.24.68 部分安装过程中需要用到的软件包和链接地址在白色硬盘的 pack.zip 中。 第一部分 nVidiaCUDA Toolkit 的安装( *.deb 方法) PS :特别推荐 *.deb 的方法,目前已提供离线版的 deb 文件,该方法比较简单,不需要切换到 tty 模式,因此不再提供原来的 *.run 安装方法,这里以 CUDA 7.5 为例。 一、 CUDARepository 获取 CUDA 安装包 , 安装包请自行去 NVidia 官网下载。( https://developer.nvidia.com/cuda-downloads ) Installation Instructions: `sudo dpkg -i cuda-repo-ubuntu1404-8-0-local_8.0.44-1_amd64.deb` `sudo apt-get update` `sudo apt-get install cuda` 第二部分 Matlab 安装和调试(以 Matlab 2014a 为例) 1. 下载 由于该软件为商业软件,请大家自行寻找,安装学习,并确保不使用做商业目的,下载 24 小时删除 ...... 2. 预准备 选择 Mathworks.Matlab.R2014a.Unix.iso- 右键 - 使用磁盘映像挂载器打开 ” ,进入装载的虚拟光盘,拷贝全部文件至 home/Matlab 文件夹 (PS :我的原则是能 GUI 就 GUI ,喜欢 CMD 的可以参照执行 ) 复制 Crack/install.jar 至 home/Matlab/java/jar/ 并覆盖源文件 $ sudo cp install.jar /home/Matlab/java/jar/ 3. 授权安装文件夹 $ chmod a+x Matlab -R 4. 安装 $ sudo ./install 选项:不使用 Internet 安装 序列号: 12345-67890-12345-67890 默认路径: /usr/local/MATLAB/R2014a 勾选从默认启动路径创建符号链接(实现在任意位置运行 matlab 启动程序) 激活文件: license_405329_R2014a.lic 拷贝 libmwservices.so 至 /usr/local/MATLAB/R2014a/bin/glnxa64 $ sudo cp libmwservices.so/usr/local/MATLAB/R2014a/bin/glnxa64/ 5. 解决编译器 gcc/g++ 版本问题。 因为 Ubuntu15.04 的 gcc/g++ 版本是 4.9.2 ,而 Matlab 2014a ( 2015a )的版本是 4.7.x 所以在使用 matla 调用 mex 文件的时候,基本上都会报错,根据报错信息,考虑如下两步解决方案。 A. 降级安装 gcc/g++ 版本为 4.7.x (a). 下载 gcc/g++ 4.7.x $ sudo apt-get install -y gcc-4.7 $ sudo apt-get install -y g++-4.7 (b). 链接 gcc/g++ 实现降级 $ cd /usr/bin $ sudo rm gcc $ sudo ln -s gcc-4.7 gcc $ sudo rm g++ $ sudo ln -s g++-4.7 g++ B. 暴力引用新版本 GLIBCXX_3.4.20 $sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20/usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.20 ( libstdc++.so.6.0.20 的版本,可能因为系统不同而不同,使用最新的就可以了。) 目录切换到 /usr/local/MATLAB/R2014a/sys/os/glnxa64/ ,非常重要! $ sudo mv libstdc++.so.6libstdc++.so.6.backup (仅仅是备份,可以不备份,直接删除)。 $ sudo ln -s libstdc++.so.6.0.20libstdc++.so.6 $ sudo ldconfig -v 通过命令 “strings/usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已经成功包含了 GLIBCXX_3.4.21 ,如果已经存在,基本上就成功了。 6. 编译 Matlab 用到的 caffe 文件(见第五部分) 第三部分 Caffe-Master 的安装和测试 对于 Caffe 的安装严格遵照官网的要求来: http://caffe.berkeleyvision.org/installation.html 一、安装 BLAS 这里可以选择( ATLAS , MKL 或者 OpenBLAS ),我这里使用 MKL ,首先下载并安装英特尔 数学内核库 Linux* 版 MKL(Intel(R) Parallel Studio XECluster Edition for Linux 2016) ,下载链接是: https://software.intel.com/en-us/intel-education-offerings , 使用学生身份(邮件 + 学校)下载 Student 版,填好各种信息,可以直接下载,同时会给你一个邮件告知序列号( 2JXL-2VTGZM8R )。下载完之后,要把文件解压到 home 文件夹 ( 或直接把 tar.gz 文件拷贝到 home 文件夹 , 为了节省空间,安装完记得把压缩文件给删除喔~ ) ,或者其他的 ext4 的文件系统中。 很多人说,下载不了,本人于 2105 年 11 月 8 日使用该地址下载最新的 2016 版本,仍然没有问题,请大家细心操作 ^_^ 。 接下来是安装过程,先授权,然后安装: $ tar zxvf parallel_studio_xe_2016.tar.gz (如果你是直接拷贝压缩文件过来的) $ chmod a+x parallel_studio_xe_2016 -R $ sh install_GUI.sh PS: 安装的时候,建议使用 root 权限安装,过程中会要求输入 Linux 的 root 口令。(设置方法:命令行: $ sudo passwd ) 二、 MKL 与 CUDA 的环境设置 1. 新建 intel_mkl.conf , 并编辑之: $ sudo gedit/etc/ld.so.conf.d/intel_mkl.conf /opt/intel/lib/intel64 /opt/intel/mkl/lib/intel64 2. 新建 cuda.conf ,并编辑之: $ sudo gedit /etc/ld.so.conf.d/cuda.conf /usr/local/cuda/lib64 /lib 3. 完成 lib 文件的链接操作,执行: $ sudo ldconfig -v 三、安装 OpenCV 3.1.0 1. 下载并编译 OpenCV (官网原版 OpenCV : http://opencv.org/ ), 或者使用我提供的修改版的安装包 ( 前面的百度云下载 ) 安装 opencv3.1 sudo apt-get installlibprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-devprotobuf-compiler 1 1 去 官网 下载一个 opencv 。然后解压出来。 sudo /bin/bash -c 'echo/usr/local/lib /etc/ld.so.conf.d/opencv.conf' sudo ldconfig find / -name “cv2.so” gedit ~/.bashrc cv2.so /home/apollo/opencv/lib export PYTHONPATH=/home/apollo/opencv/lib:$PYTHONPATH source~/.bashrc 四、安装其他依赖项 1. Google Logging Library ( glog ),下载地址: https://code.google.com/p/google-glog/ ,然后解压安装: $ tar zxvf glog-0.3.3.tar.gz $ ./configure $ make $ sudo make install 如果没有权限就 chmoda+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以 kill 了。 2. 其他依赖项,确保都成功 $ sudo apt-get install -y libprotobuf-devlibleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-devlibgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compilerprotobuf-c-compiler protobuf-compiler 五、安装 Caffe 并测试 0. 安装 protobuf $wgethttps://github.com/google/protobuf/archive/v2 .6.1 .zip $unzip protobuf- 2.6.1 .zip $cd protobuf- 2.6.1 下载自 github 的代码需要首先执行 $ ./autogen.sh 生成 configure 文件 $ ./configure $ make $ make check $ make install 我使用的是 centos 系统 usr/local/bin usr/local/lib, usr/local/include 是也系统默认路径之一,所以到这一步就可以使用 protobuf 了 $ protoc - I =./ --cpp_out=./test.proto 到你的 test.proto 文件所在目录使用命令 protoc - I =./ --cpp_out=./ 生成 C ++ 版本的协议文件 一切 OK 的话,你回在当前目录看到 .h 和 .cc 文件 1. 安装 pycaffe 必须的一些依赖项: $ sudo apt-get install -y python-numpypython-scipy python-matplotlib python-sklearn python-skimage python-h5pypython-protobuf python-leveldb python-networkx python-nose python-pandaspython-gflags Cython ipython 2. 安装配置 nVidia cuDNN 加速 Caffe 模型运算 a. 安装前请去先官网下载最新的 cuDNN (cudnn-7.0-linux-x64-v4.0-prod) 。 $ sudo cp include/cudnn.h /usr/local/include $ sudo cp lib64/libcudnn.* /usr/local/lib b. 链接 cuDNN 的库文件 $sudo ln -sf /usr/local/lib/libcudnn.so.4.0.7 /usr/local/lib/libcudnn.so.4 $ sudo ln -sf /usr/local/lib/libcudnn.so.4/usr/local/lib/libcudnn.so $ sudo ldconfig -v 3. 切换到 Caffe-master 的文件夹,生成 Makefile.config 配置文件,执行: $ cp Makefile.config.example Makefile.config 4. 配置 Makefile.config 文件(仅列出修改部分) a. 启用 CUDNN ,去掉 # USE_CUDNN := 1 b. 配置一些引用文件(增加部分主要是解决新版本下, HDF5 的路径问题) INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib/usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial c. 启用 Intel Parallel Studio XE 2016 BLAS := mkl d. 配置路径,实现 caffe 对 Python 和 Matlab 接口的支持 PYTHON_LIB := /usr/local/lib MATLAB_DIR := /usr/local/MATLAB/R2014a c. 启用 OpenCV 3.0, 去掉 # OPENCV_VERSION =3 6. 编译 caffe-master !!! -j16 是使用 CPU 的多核进行编译,可以极大地加速编译的速度,建议使用。 $ make all -j16 $ maketest -j16 $ makeruntest -j16 编译 Python 和 Matlab 用到的 caffe 文件 $ makepycaffe -j16 $ make matcaffe -j16 六、使用 MNIST 数据集进行测试 Caffe 默认情况会安装在 $CAFFE_ROOT ,就是解压到那个目录,例如: $ home/username/caffe-master ,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试 Caffe 是否工作正常,不做详细评估。具体设置请参考官网: http://caffe.berkeleyvision.org/gathered/examples/mnist.html 1. 数据预处理 $ sh data/mnist/get_mnist.sh 2. 重建 lmdb 文件。 Caffe 支持多种数据格式输入网络,包括 Image(.jpg, .png 等 ) , leveldb , lmdb , HDF5 等,根据自己需要选择不同输入吧。 $ sh examples/mnist/create_mnist.sh 生成 mnist-train-lmdb 和 mnist-train-lmdb 文件夹,这里包含了 lmdb 格式的数据集 3. 训练 mnist $ sh examples/mnist/train_lenet.sh 三、安装 faster-rcnn 复制 py-faster-rcnn-person 文件夹,然后要删除一些文件: 1 、 lib/datasets/ 里的 pascal_voc.pyc 和 imdb.pyc 2 、 output/ 里的 faster_rcnn_alt_opt 文件夹 3 、 data 里的 cache 文件夹 4 、如果不用行人的数据,而是换了数据的话,就要删除 data/vocdevkit2007 里的 annotations_cache 。 5 、把 model 文件夹删除,换成 py-faster-rcnn 文件夹(就是官网上下的没有换过数据的 faster-rcnn )里的那个 model 。 然后要把之前 caffe 里的那个 makefile.config 复制到 caffe_fast_rcnn 文件夹下面。 注意要把: WITH_PYTHON_LAYER:=1 放开 mkdirbuild cdbuild cmake.. make all -j16 makeruntest -j16 (报错也没关系) $ make pycaffe -j16 编译 Python 和 Matlab 用到的 caffe 文件 Sudo apt-get install python-pip Pip install easydict 一、修改调用文件 1 、 prototxt 配置文件 models/pascal_voc/ZF/faster_rcnn_alt_opt 文件夹下的 5 个文件,分别为 stage1_rpn_trainNaN 、 stage1_fast_rcnn_trainNaN 、 stage2_rpn_trainNaN 、 stage2_fast_rcnn_trainNaN 和 fast_rcnn_testNaN ,修改格式如下: (1)stage1_fast_rcnn_trainNaN 和 stage2_fast_rcnn_trainNaN 修改参数 num_class:2 (识别 1 类 + 背景 1 类), cls_score 中 num_output : 2 , bbox_pred 中 num_output : 8 。(只有这 3 个) (2)stage1_rpn_trainNaN 和 stage2_rpn_trainNaN 修改参数 num_class:2 (识别 1 类 + 背景 1 类) (3)fast_rcnn_testNaN 修改参数: cls_score 中 num_output : 2 , bbox_pred 中 num_output : 8 ( 只有这 2 个) 2 、 修改 lib/datasets/pascal_voc.py self._classes = ('__background__', # alwaysindex 0 'person' ) (只有这一类) 3 、修改 lib/datasets/imdb.py 数据整理,在一行代码为 boxes = widths - oldx1 - 1 下加入代码: for b in range(len(boxes)): if boxes boxes : boxes = 0 4 、修改完 pascal_voc.py 和 imdb.py 后进入 lib/datasets 目录下 删除 原来的 pascal_voc.pyc 和 imdb.pyc 文件, 重新生成 这两个文件,因为这两个文件是 python 编译后的文件,系统会直接调用。 终端进入 lib/datasets 文件目录输入: python ( 此处应出现 python 的版本 ) importpy_compile py_compile.compile(r'imdb.py') py_compile.compile(r'pascal_voc.py') 二、训练自己的数据 终端进入 py-faster-rcnn 下输入: ./experiments/scripts/faster_rcnn_alt_opt.sh0ZF pascal_voc 如果执行错: cv2 importERROR : apt-get installpython-opencv yaml importError: apt-get install python-yaml 三、 demo 自己刚刚生成的 ZF_models 1 、训练完成之后,将 output/faster_rcnn_alt_opt/voc_2007_trainval 中的最终模型 ZF_faster_rcnn_final.caffemodel 拷贝到 data/faster_rcnn_models (删除以前生成类似的 model )中。 2 、修改 /tools/demo.py 为: (1) CLASSES =('__background__', 'people' ) (只有这两类) (2) NETS ={'vgg16': ('VGG16', 'VGG16_faster_rcnn_final.caffemodel'), 'zf': ('ZF', 'ZF_faster_rcnn_final.caffemodel' )} (3) 在训练集图片中找一张出来放入 py-faster-rcnn/data/demo 文件夹中,命名为 000001.jpg 。 im_names = (只需这一类图片的一张,其他删除或注销) for im_name in im_names: print'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' print'Demo for data/demo/{}'.format(im_name) demo(net, im_name) 3 、运行 demo ,即在 py-faster-rcnn 文件夹下终端输入: ./tools/demo.py --net zf 结果如图: 四. Cpu 运行 faster rcnn 1. 在一切都正常的情况下,对 caffe-fast-rcnn 进行 make 和 make pycaffe 的结果如下: 编译好 caffe-fast-rcnn 后,在 py-faster-rcnn/lib 中执行 make 命令: bigtop@bigtop-SdcOS-Hypervisor:~/py-faster-rcnn/lib$ make python setup.py build_ext --inplace running build_ext skipping 'utils/bbox.c' Cython extension(up-to- date ) skipping 'nms/cpu_nms.c' Cython extension(up-to- date ) skipping 'pycocotools/_mask.c' Cython extension (up-to- date ) rm -rf build bigtop@bigtop-SdcOS-Hypervisor:~/py-faster-rcnn/lib$ 2 在安装配置好 caffe-fast-rcnn 后,修改 py-faster-rcnn 相关配置,让其模型可以在没有 GPU 的环境下运行: A 将 ~/py-faster-rcnn/lib/fast_rcnn/config.py 的如下内容: B 将 ~/py-faster-rcnn/tools/test_net.py 和 ~/py-faster-rcnn/tools/train_net.py 的 caffe.set_mode_gpu() 修改为 caffe.set_mode_cpu(). C 将 ~/py-faster-rcnn/lib/setup.py 中,含有 'nms.gpu_nms’ 的部分去掉,去掉后的内容如下: 112 ext_modules = , 116 extra_compile_args={ 'gcc' : }, 117 include_dirs = 118 ), 119 Extension( 120 nms.cpu_nms , 121 , 122 extra_compile_args={ 'gcc' : }, 123 include_dirs = 124 ), 125 Extension( 126 'pycocotools._mask' , 127 sources= , 128 include_dirs = , 129 extra_compile_args={ 130 'gcc' : }, 131 ), 132 ] D 做到上面三部后,还是不够的,还需要将: ../lib/fast_rcnn/nms_wrapper.py:9: #from nms.gpu_nms import gpu_nms 注释掉: 否则,会抛出如下的异常: Traceback (most recent call last ): File ./demo.py , line 18 , in from fast_rcnn.test import im_detect File .../py-faster-rcnn-master/tools/../lib/fast_rcnn/test.py , line 17 , in from fast_rcnn.nms_wrapper import nms File .../py-faster-rcnn-master/tools/../lib/fast_rcnn/nms_wrapper.py , line 11 , in from nms.gpu_nms import gpu_nms ImportError: No module named gpu_nms 3. 修改 train_faster_rcnn_alt_opt.py: 1 )下列语句: 修改为: 2 )下列语句 修改为: 4. 打开 faster_rcnn_alt_opt.sh 1) 找到下列语句: 修改为: 3. 训练 : 终端进入 py-faster-rcnn 下输入: ./experiments/scripts/faster_rcnn_alt_opt.sh ZF pascal_voc 五. ipython notebook for ubuntu14.04 安装步骤(真的超级简单) 1. 环境 操作系统: ubuntu 14.04 / 尤麒麟 2. 操作步骤 a) 安装 pip 工具 终端输入以下命令: sudo apt-get install python-pip b) 安装 ipython 终端输入以下命令: sudo apt-get install ipython c) 安装 ipython 终端输入以下命令: sudo apt-get install ipython-notebook d) 启动 ipython 终端输入以下命令: ipython notebook
3939 次阅读|0 个评论
神经网络和卷积神经网络的基础知识
热度 2 apollocv 2017-6-1 08:53
神经网络和卷积神经网络的基础知识 1, Michael Nielsen写的在线教程 http://neuralnetworksanddeeplearning.com/ 介绍了神经网络的基本结构,有例子展示为何神经网络可以学习任何函数,为什么传统的深度学习很慢等。还提供了基于Theano的用于MNIST手写数字的识别的例子代码。 2, 斯坦福大学的深度学习课程 http://cs231n.github.io/ 这是斯坦福大学李飞飞教授开的一门课。从图像分类的应用出发,介绍了线性分类器、随机梯度下降法等基本的 机器学习 中常用的概念。并且介绍了在使用神经网络、卷积神经网络和转移学习中的问题和例子。 3,《 Deep Learning in Neural Networks: An Overview 》 这是瑞士 人工智能 实验室 Jurgen Schmidhuber 写的最新版本《神经网络与深度学习综述》本综述的特点是以时间排序,从 1940 年开始讲起,到 60-80 年代,80-90 年代,一直讲到 2000 年后及最近几年的进展。涵盖了 deep learning 里各种 tricks,引用非常全面。 4, UFLDL -斯坦福大学 Andrew Ng 教授“Deep Learning”教程 本教程将阐述无监督特征学习和深度学习的主要思想。涵盖了稀疏编码、Softmax回归、用深度网络做图像分类等方面的应用。 CNN的应用 1, 目标检测 【基于深度学习的目标检测研究进展 】 http://chuansong.me/n/353443351445 这篇文章介绍了一系列基于CNN的目标检测算法,简述了传统目标检测的流程,介绍了以R-CNN为代表的结合region proposal和CNN分类的目标检测框架(R-CNN, SPP-NET, Fast R-CNN, Faster R-CNN)、以YOLO为代表的将目标检测转换为回归问题的目标检测框架(YOLO, SSD),并且介绍一些可以提高目标检测性能的技巧和方法。 2,图像分割 基于FCN的分割 http://blog.csdn.net/taigw/article/details/51401448 3, 目标跟踪 【深度学习在目标跟踪中的应用】 https://zhuanlan.zhihu.com/p/22334661 4, 其他 有待更新 更多资料: http://www.open-open.com/news/view/1621439
3740 次阅读|2 个评论
专题讨论班:深度学习简介(周池春)
GrandFT 2017-5-15 11:45
题目:深度学习简介以及神经网络的具体例子 Long Short-Term Memory 神经网络 主讲:周池春 时间:2017年5月15日 下午 2点 地点:天津大学北洋园校区32教343 提纲: 1.机器学习简介 2.深度学习简介 3.RNN神经网络 4.LSTM神经网络 参考书目: 1.“Deep Learning”作者 Ian Goodfellow, Yoshua Bengio, Aaron Courville 2.“Deep Learning with Python. A Hands-on Introduction”作者 Nikhil Ketkar
个人分类: 专题讨论班|2693 次阅读|0 个评论
深度学习时代的计算机视觉
热度 1 zsfreefly 2017-5-11 17:27
在上世纪50 年代,数学家图灵提出判断机器是否具有人工智能的标准:图灵测试。图灵测试是指测试者在与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。进行多次测试后,如果有超过 30% 的测试者不能确定出被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智能。 图灵测试一词来源于计算机科学和密码学的先驱阿兰·麦席森·图灵写于 1950 年的一篇论文《计算机器与智能》,其中 30% 是图灵对 2000 年时的机器思考能力的一个预测,但是从图灵测试提出来开始到本世纪初, 50 多年时间有无数科学家提出很多机器学习的算法,试图让计算机具有与人一样的智力水平,但直到 2006 年深度学习算法的成功,才带来了一丝解决的希望。 前深度学习时代的计算机视觉 为什么深度学习之前,传统计算机视觉算法在人脸识别、跟踪、目标检测等诸多领域没有达到深度学习的精度呢?回答这一问题,需要我们先了解传统算法的特点。 对于视觉算法来说,大致可以分为以下4 个步骤:图像预处理、特征提取、特征筛选、推理预测与识别。计算机视觉可以说是机器学习在视觉领域的应用,所以计算机视觉在采用这些机器学习方法的时候,不得不自己设计前面 3 个部分。但对任何人来说这都是一个比较难的任务。 传统的计算机识别方法把特征提取和分类器设计分开来做,然后在应用时再合在一起,比如如果输入是一个摩托车图像的话,首先要有一个特征表达或者特征提取的过程,然后把表达出来的特征放到学习算法中进行分类的学习。 过去20 年中出现了不少优秀的特征算子,比如最著名的 SIFT 算子,即所谓的对尺度旋转保持不变的算子。它被广泛地应用在图像比对,特别是所谓的 structure from motion 这些应用中,有一些成功的应用例子。另一个是 HoG 算子,它可以提取物体,比较鲁棒的物体边缘,在物体检测中扮演着重要的角色。 这些算子还包括Textons , Spin image , RIFT 和 GLOH ,都是在深度学习诞生之前或者深度学习真正的流行起来之前,占领视觉算法的主流。 这些特征和一些特定的分类器组合取得了一些成功或半成功的例子,基本达到了商业化的要求但还没有完全商业化。比如指纹识别算法、基于Haar 的人脸检测算法、基于 HoG 特征的物体检测。但这种成功例子太少了,因为 手工设计特征需要大量的经验,需要你对这个领域和数据特别了解,然后设计出来特征还需要大量的调试工作 。说白了就是需要一点运气。 另一个难点在于,你不只需要手工设计特征,还要 在此基础上有一个比较合适的分类器算法 。同时设计特征然后选择一个分类器,这两者合并达到最优的效果,几乎是不可能完成的任务。 深度学习时代的计算机视觉 深度学习的前世 深度学习网络的最初原型是人工智能领域的大牛Lecun 在 1998 年 ATT 的实验室时发明出来的,当时用这一网络进行字母识别,达到了非常好的效果。 我们不禁要问:似乎卷积神经网络设计也不是很复杂,98 年就已经有一个比较像样的雏形了。自由换算法和理论证明也没有太多进展。那为什么时隔 20 年,卷积神经网络才能卷土重来,占领主流? 这一问题与卷积神经网络本身的技术关系不太大,与其它一些客观因素有关。 首先,深度卷积神经网络需要大量数据进行训练。网络深度太浅的话,识别能力往往不如一般的浅层模型,比如SVM 或者 boosting ;如果做得很深,就需要 大量数据 进行训练,否则机器学习中的过拟合将不可避免。而2006 年开始,正好是互联网开始大量产生各种各样的图片数据的时候,即视觉大数据开始爆发式地增长。 另外一个条件是运算能力。卷积神经网络对计算机的运算要求比较高,需要大量重复可并行化的计算,在当时CPU 只有单核且运算能力比较低的情况下,不可能进行个很深的卷积神经网络的训练。随着 GPU 计算能力的增长,卷积神经网络结合大数据的训练才成为可能。 最后一点就是人和。卷积神经网络有一批一直在坚持的科学家(如Lecun )才没有被沉默,才没有被海量的浅层方法淹没。最后终于看到卷积神经网络占领主流的曙光。 深度学习的今生 深度学习的概念由Hinton 等人于 2006 年提出,具备天时地利人和的深度学习从此一发不可收拾,其在计算机视觉的诸多领域取得的效果远超传统机器学习算法,包括 人脸识别、图像问答、物体检测、物体跟踪 。 人脸识别方面,工作比较超前的是汤晓鸥教授,他们提出的DeepID 算法在 LWF 上做得比较好。最新的 DeepID-3 算法,在 LWF 达到了 99.53% 准确度,与肉眼识别结果相差无几。 物体检测方面,2014 年的 Region CNN 算法、 2015 年的 Faster R-CNN 方法、 FACEBOOK 提出来的 YOLO 网络、在 arXiv 上出现的最新算法叫 Single Shot MultiBox Detector 在识别精度和速度上均与较大提升。 物体跟踪方面,DeepTrack 算法是第一在线用深度学习进行跟踪的文章,当时超过了其它所有的浅层算法。此后越来越多的深度学习跟踪算法提出。
4326 次阅读|1 个评论
深度学习起源翻译0
热度 1 xianchaozhang 2017-5-11 16:12
近日,卡内基梅隆大学的 Haohan Wang 和 Bhiksha Raj 在 arXiv 上发布了一篇论文《 On the Origin of Deep Learning 》,详细地梳理了深度学习思想自亚里士多德时代以来的发展,尤其是现代随着计算机科学的兴起而出现的一些新的算法思想,很有参考价值。我们对该文进行了初步的翻译,以方面国内读者阅读。水平有限,翻译不够准确的地方敬请批评指正。有兴趣阅读原文的读者可在 https://arxiv.org/abs/1702.07800 查阅。
2425 次阅读|1 个评论
【IJAC上新闻】Poggio教授关于深度学习的综述已被MIT NEWS等报道
热度 2 Chenfiona 2017-5-10 17:53
还记的IJAC三月发表的一篇有关深度学习的综述吗?作者是麻省理工美国人文与科学院院士Tomaso Poggio 。 Poggio教授在这篇文章中阐述了有关神经网络深度学习的一个基本问题:为什么深层网络比浅层网络更好? 这篇论文在发表后近2个月,下载量已经超过1500次,Altmetric分数已达到57,该论文和IJAC期刊已被MIT News、ECN等5家国外媒体报道,此后被“机器之心”微信公众号等国内自媒体和网页翻译转载。 这么热的论文,你怎么能不看呢? Why and When Can Deep-but Not Shallow-networks Avoid theCurse of Dimensionality: A Review Author : Tomaso PoggioHrushikesh Mhaskar, Lorenzo Rosasco, Brando Miranda, Qianli Liao Institute : Massachusetts Institute of Technology, USA Keywords: Machine learning, neural networks, deep andshallow networks, convolutional neural networks, function approximation, deeplearning. Full Text: https://link.springer.com/article/10.1007/s11633-017-1054-2 http://news.mit.edu/2017/explained-neural-networks-deep-learning-0414
个人分类: 好文推荐|658 次阅读|2 个评论
【小编探会】之23:CSIG视觉大数据..暨第一届视觉大数据高峰论坛
Chenfiona 2017-5-10 16:44
5 月5日,中国图象图形学学会主办、视觉大数据专业委员会承办、图像视频大数据产业技术创新战略联盟协办的 “CSIG视觉大数据专委会成立大会暨第一届视觉大数据高峰论坛” 在中科院自动化所召开。 小编在会场推介了“Highlight Articles of IJAC in 2016-2017”,推荐的8篇文章中,有三篇是关于深度学习的综述和研究论文。一位老师说IJAC发文级别越来越高喽,呵呵! 本次论坛以“视觉大数据”为主题,邀请了旷视科技首席科学家孙剑博士、腾讯AI Lab计算机视觉中心总监刘威博士、商汤科技首席研发总监林倞教授、复旦大学姜育刚教授做主题报告。他们分别介绍了自己所从事的视觉大数据领域的研究工作,并就如何加快我国视觉大数据产业的发展,强化视觉大数据技术对智能产业的引领和支持,推动视觉大数据技术不断发展等方面提出了许多独到见解。 (部分文字与照片来源中科院自动化所新闻) Highlight Articlesof IJAC in 2016-2017 Why and When Can Deep-but Not Shallow-networks Avoid theCurse of Dimensionality: A Review Author : Tomaso PoggioHrushikesh Mhaskar, Lorenzo Rosasco, Brando Miranda, Qianli Liao Institute : Massachusetts Institute of Technology, USA Keywords: Machine learning, neural networks, deep andshallow networks, convolutional neural networks, function approximation, deeplearning. Full Text: https://link.springer.com/article/10.1007/s11633-017-1054-2 A Survey on Deep Learning-based Fine-grained ObjectClassification and SemanticSegmentation Author : Bo Zhao, Jiashi Feng, Xiao Wu, Shuicheng Yan Institute : National University of Singapore, Singapore Keywords: Deep learning, fine-grained imageclassification, semantic segmentation, convolutional neural network, recurrentneural network. Full Text: https://link.springer.com/article/10.1007/s11633-017-1053-3 http://www.ijac.net/EN/abstract/abstract1901.shtml Minimal Gated Unit for Recurrent Neural Networks Author : Guo-Bing Zhou, Jianxin Wu, Chen-Lin Zhang, Zhi-Hua Zhou Institute : Nanjing University, China Keywords: Recurrent neural network, minimal gated unit,gated unit, gate recurrent unit, long short-term memory, deep learning. Full Text: https://link.springer.com/article/10.1007/s11633-016-1006-2 http://www.ijac.net/EN/abstract/abstract1822.shtml Pinning Control and Controllability of Complex DynamicalNetworks Author : Guanrong Chen Institute : City University of Hong Kong, China Keywords: Complex network, pinning control,controllability, linear time-invariant system, temporally switching network,graph theory. Full Text: https://link.springer.com/article/10.1007/s11633-016-1052-9 http://www.ijac.net/EN/abstract/abstract1865.shtml Review of Some Advances and Applications in Real-timeHigh-speed Vision: Our Views and Experiences Author : Qing-Yi Gu, Idaku Ishii Institute : Hiroshima University, Japan Keywords: Real-timehigh-speed vision, target tracking, abnormal behavior detection, behaviormining, vibration analysis, 3D shape measurement, cell sorting. Full Text: https://link.springer.com/article/10.1007/s11633-016-1024-0 http://www.ijac.net/EN/abstract/abstract1808.shtml Cooperative Formation Control of Autonomous UnderwaterVehicles: An Overview Author : Bikramaditya Das, Bidyadhar Subudhi, Bibhuti Bhusan Pati Institute : Veer Surendra Sai University of Technology, India Keywords: Autonomous underwater vehicles, cooperativecontrol, formation control, tracking control, regulatory control. Full Text: https://link.springer.com/article/10.1007/s11633-016-1004-4 http://www.ijac.net/EN/abstract/abstract1821.shtml Optimal Feedback Control of OilReservoir Waterflooding Processes Author : A. S. Grema, Yi Cao Institute : Cranfield University, UK Keywords: Oil reservoir management,intelligent wells, optimal control theory, feedback control, geologicaluncertainty. Full Text: https://link.springer.com/article/10.1007/s11633-015-0909-7 http://www.ijac.net/EN/abstract/abstract1769.shtml Output Feedback Stabilization of Spacecraft AutonomousRendezvous Subject to Actuator Saturation Author : Qian Wang, Guang-Ren Duan Institute : Harbin Institute of Technology, China Keywords: Dynamic gain scheduling, output feedback,parametric Lyapunov equation, input saturation, spacecraft rendezvous. Full Text: https://link.springer.com/article/10.1007/s11633-016-0952-z http://www.ijac.net/EN/abstract/abstract1691.shtml
个人分类: 小编探会|603 次阅读|0 个评论
深度学习助力提升物种鉴别效率
热度 1 zhuchaodong 2017-4-14 07:31
分类学工作者采集到大量标本,可以研究物种的形态和遗传的变异范围,是一件非常令人兴奋的事情。但有时,大量小型标本的分拣也是令人头疼的事情。智能手机、数码相机和互联网时代,随时随地可能获得有趣的图片,便于专家进行识别。然而,当相同物种的图片增加到一定程度,专家也无法及时给予回复。这里面最大的问题,还在于物种图片鉴别速度和鉴别准确率的问题。我在上一篇博文中提到“开发识别技术,加速物种分类学研究进程”。分子生物学和分类学整合,在过去的几十年极大推动了物种界定和生物系统学的发展。在快速逼近的大数据时代和深度学习时代,物种图片识别技术是否能够得到快速发展?生物分类的过程,实际上是人类智力和时间高度参与人工图片识别和归类的过程。能否加速图片识别,降低人类对重复图片识别和归类的时间投入? 2012年,中国科学院网络中心的李健博士等就已经实现了鸟类的图片识别。该物种形态学鉴别系统基于 IT 技术,包括了 B/S 架构的 Web 端和手持设备端两部分。使得用户可直接访问专家数据库以判定个体从属的种类,同时也可以上传信息请求专家审核.此鉴别系统在为用户提供方便准确的物种鉴别手段的同时,也为分类学家提供了一个获取大量信息的平台(鸟类物种形态学鉴别系统设计与实现:http://escj.cnic.cn/CN/abstract/abstract12648.shtml)。目前,他的团队已经能够处理动态视频中的鸟类物种识别问题。这样的工作及其平台,能否移植到昆虫工作中? 今天早晨读到Nvidia网站上一篇关于野生动物图片自动鉴别的报道,同时阅读了昆虫图像识别的一篇综述。两者分别从硬件和软件的角度,提出了一些有价值的思路,值得参考。它们的共同点如下: 1、相机监测网络已经获得大量野生小型兽类、鸟类的图片; 2、像素得到极大提升的智能手机和数码相机已经非常普及,和植物图片一样,昆虫的图片数据也在不断增加; 3、室内分类学工作生成大量的专业级(专家级)图片; 4、野外相机监测、智能手机和数码相机获得图片不一定和室内的专业图片相同的大小、摆放位置和角度; 5、均可以引入深度学习的理念,在未来海量图片的基础上,整合专业级图片,加速图像识别和自动鉴别,并提高准确程度; 6、把分类学者从标本分拣的琐碎工作中解放出来,既能够获得物种的分布数据,又能够集中精力针对部分标本开展深入的物种研究工作。 下列3个图和1个表格均来自: A survey on image-based insect classification.pdf 。 图1、特征提取方式演变 图2、昆虫识别的特征分类策略 图3、分类策略 表1、综述中涉及的昆虫图像识别数据及文献 Automatically Identify Wild Animals in Camera-Trap Images April 11, 2017 A research team led by University of Wyoming developed a deep learning -based system to identify species in the Serengeti National Park in Tanzania that could make it easier for ecologists to track animals in the wild. Camera traps automatically take pictures of passing animals when triggered by heat and motion which produce millions of images and extracting knowledge from these camera-trap images is traditionally done by humans. According to their research paper , it currently takes two to three months for a group of thousands of people to manually label each 6-month batch of images. When lead researcher Jeff Clune at the University of Wyoming in Laramie heard about the project, he knew it was an ideal opportunity to leverage deep learning. Using a variety of GPUs including the NVIDIA DGX-1 AI supercomputer and CUDA , cuDNN and NCLL with the Torch deep learning framework, the researchers trained their deep convolutional neural network to recognize 48 species in 3.2 million images taken from the national park’s hidden camera-traps. They were able to train their neural networks to automatically identify the variety of animals with over 92% accuracy. A sample camera-trap image from the Snapshot Serengeti dataset. “This is very exciting,” says Chris Carbone at the Zoological Society of London. Automatic species recognition could help us learn more about the distribution of species and get a better idea of the impact humans are having on them, he says. Read more Tags: CUDA , cuDNN , GeForce , Higher Education / Academia , Image Recognition , Machine Learning Artificial Intelligence , Tesla
5704 次阅读|1 个评论
请大家协助揭露深度学习方面的欺诈
热度 8 gaoshannankai 2017-4-13 18:30
对于美国新一轮科技革命的深度思考 http://blog.sciencenet.cn/blog-907017-1042459.html 基于我多年在信息科学和生命科学的实际工作经验,我对本轮科技革命 做出如下研判,当然还请各位同领域大小同行给予批评指正。 现在,有些人为了骗取经费或坑害消费者,设计所谓针对神经网络的 各种专用服务器乃至芯片,也是我们大家应该可以预料到的。 现在有人叫卖的所谓深度学习服务器,自称可以扩展到100GPU, 我本人表示怀疑。当然我现在已经离开计算领域时间较长,但是据我的 不完全经验,貌似一块主板增加到8块显卡,就已经需要专业定制了, 而且IO有瓶颈,这个是不能无限增加的。 第二就是有人叫卖100万服务器配置,提供软硬件全套解决方案, 我个人认为这种专业配置,很难有一揽子解决方案,即使有个比较通用 的算法,比如神经网络深度学习,也只能干这个,所以这个软件有些虚。 最后就是,目前的算法,包括比较重要的数据预处理等,还都是 串行的,控制多个GPU的并行算法估计也是刚刚开展起来,真的有必要大家 都配置这种专用服务器么?我们南开大学动物系现在计算进化,确实需要 大量GPU加速,但是主要还是利用他的数据位数多(比如128或256)和 主频高,目前没有见到哪种算法可以驱动多个GPU,起码不常见。 当前的深度学习,基本上还是围绕人工神经网络展开,当然以后还会有 更多的发展,有无必要设计专门的CPU或GPU,这些都有待论证。 普通实验室,真的有那么大的数据,需要购置100万的深度学习服务器么? 我建议你先把你算法和数据放到普通服务器上跑一跑,估计一下时间,等需要的时候再买。 当然国家经费花不完除外,我这个主要是对真正有需要的人说的。 一块 NVIDIA ( 英伟达 )显卡,专业一点的刚出来3000元以上, 一年后折半,2-3年后,我去二手市场当萝卜白菜300元收一块,照样可以搞科研。 知道多黑了吧,人工智能,即使有智能的美国人骗没有智能的中国人的钱 关于多GPU并行计算等,我谈谈个人看法,请大家批评指正 GPU原本上适于并行计算(多CPU)对立的,就是因为有些领域不适合多个cpu工作,所以特意 找一个最快的GPU,充分发挥他主频高和数据位数多的优点,例如导弹里面的计算机,这个要高性能 实时计算,所以当初美国和日本禁止类似playstation的游戏机出口中国,就是怕他的128芯片系统被 中国拿去搞导弹。我知道有些人是搞了GPU并行计算算法之类的,特别是遇到一个国防科大校友, 他说他为了发文章搞过一个,在2个GPU服务器上测试了,但是为了发文章弄的,没有实际意义。 为了发论文,故意设计多个GPU并行计算,当然我们不知道是真并行和假并行,总之去解决 自己想象出来的课题,这既是伪科研。
2729 次阅读|12 个评论
【IJAC推文】“高智商”机器人的终极杀器---深度学习技术
Chenfiona 2017-4-11 19:48
一直以来,棋类游戏都被视为顶级人类智力的试金石。1997年,国际象棋机器人第一次打败人类顶尖高手;9年后,人类最后一次打败国际象棋机器人。 围棋,因其需要计算的变化数量远远超过宇宙中已观测到的原子数量,令一众企图借蛮力穷尽算法的研究者们望而却步。然好景不长,继去年阿法狗大败九段手李世石后,人机大战2.0版也将于今年5月在乌镇正式开打。而支撑“高智商”机器人征战南北的终极杀器,正是火遍全球的“深度学习”技术。 说起“深度学习”,不禁联想到各大互联网公司、智商完美碾压小编的首席科学家们,其中当然少不了AI界大神、360首席科学家、人工智能研究院院长颜水成。 “深度学习”技术的本质就在于特征分层不依赖于研究者的设计,而是机器本身基于一种通用的学习程序,借助数据,像人脑一样主动学习的过程。“深度学习”有大量不同的架构方法,其中就包括基于卷积神经网络的架构方法和基于递归神经网络的架构方法。 脑容量够大、觉得不过瘾的各位不妨继续深入读读颜水成团队关于“深度学习”的研究综述。他们回顾了基于“深度学习”的4种细粒度图像分类方法,以及基于“深度学习”的语义分割方法。如何让机器学会“认识”各种各样的鸟?如何让机器能够“看图说话”?答案就在文中~ 1. 收录信息: Bo Zhao, Jiashi Feng, Xiao Wu,Shuicheng Yan. A Survey on Deep Learning-based Fine-grained ObjectClassification and Semantic Segmentation. InternationalJournal of Automation and Computing , vol. 14, no. 2, pp. 119-135, 2017. 2. 全文链接: 1) Springer Link: https://link.springer.com/article/10.1007/s11633-017-1053-3 2) IJAC 官网: http://www.ijac.net/EN/abstract/abstract1901.shtml 3. 摘要: The deep learning technology hasshown impressive performance in various vision tasks such as image classification,object detection and semantic segmentation. In particular, recent advances ofdeep learning techniques bring encouraging performance to fine-grained imageclassification which aims to distinguish subordinate-level categories, such asbird species or dog breeds. This task is extremely challenging due to highintra-class and low inter-class variance. In this paper, we review four typesof deep learning based fine-grained image classification approaches, includingthe general convolutional neural networks (CNNs), part detection based,ensemble of networks based and visual attention based fine-grained imageclassification approaches. Besides, the deep learning based semanticsegmentation approaches are also covered in this paper. The region proposal basedand fully convolutional networks based approaches for semantic segmentation areintroduced respectively. 4. 关键词: Deep learning , fine-grained image classification , semanticsegmentation , convolutional neural network (CNN) , recurrent neural network (RNN). IJAC 近期发表的其他两篇深度学习热文如下 : TomasoPoggio, Hrushikesh Mhaskar, Lorenzo Rosasco, Brando Miranda, Qianli Liao. Why and When Can Deep-but NotShallow-networks Avoid the Curse of Dimensionality: A Review . International Journal of Automation andComputing , DOI: 10.1007/s11633-017-1054-2, 2017. 全文链接 : https://link.springer.com/article/10.1007/s11633-017-1054-2 Guo-BingZhou, Jianxin Wu,Chen-Lin, ZhangZhi-Hua Zhou. Minimal gated unit for recurrent neural networks . I nternational Journal of Automation andComputing , Vol.13, No.3, pp. 226-234, 2016. 全文链接 : https://link.springer.com/article/10.1007/s11633-016-1006-2 或 http://www.ijac.net/EN/abstract/abstract1822.shtml 5. 作者简介: 1 ) BoZhao received the B. Sc. degree in networking engineeringfrom Southwest Jiaotong University in 2010. He is a Ph.D. degree candidate atSchool of Information Science and Technology, Southwest Jiaotong University,China. Currently, he is at the Department of Electrical and ComputerEngineering, National University of Singapore, Singapore as a visiting scholar. His research interests includemultimedia, computer vision and machine learning. E-mail: zhaobo@my.swjtu.edu.cn ORCID iD: 0000-0002-2120-2571 2 ) JiashiFeng received the B.Eng. degree fromUniversity of Science and Technology, China in 2007, and the Ph.D. degree fromNational University of Singapore, Singapore in 2014. He was a postdocresearcher at University of California, USA from 2014 to 2015. He is currentlyan assistant professor at Department of Electrical and Computer Engineering,National University of Singapore, Singapore. His research interests includemachine learning and computer vision techniques for large-scale data analysis.Specifically, he has done work in object recognition, deep learning, machinelearning, high-dimensional statistics and big data analysis. E-mail: elefjia@nus.edu.sg 3 ) XiaoWu received the B.Eng. and M. Sc. degrees in computerscience from Yunnan University, China in 1999 and 2002, respectively, and thePh.D. degree in computer science from City University of Hong Kong, China in2008. He is an associate professor at Southwest Jiaotong University, China. Heis the assistant dean of School of Information Science and Technology, and thehead of Department of Computer Science and Technology. Currently, he is atSchool of Information and Computer Science, University of California, USA as avisiting associate professor. He was a research assistant and a senior researchassociate at the City University of Hong Kong, China from 2003 to 2004, and2007 to 2009, respectively. From 2006 to 2007, he was with the School ofComputer Science, Carnegie Mellon University, USA as a visiting scholar. He waswith the Institute of Software, Chinese Academy of Sciences, China, from 2001to 2002. He received the second prize of Natural Science Award of the Ministryof Education, China in 2015. His research interests includemultimedia information retrieval, image/video computing and data mining. E-mail: wuxiaohk@gmail.com (Corresponding author) ORCID iD: 0000-0002-8322-8558 4 ) ShuichengYan is currently an associate professor at theDepartment of Electrical and Computer Engineering, National University ofSingapore, Singapore, the founding lead of the Learning and Vision ResearchGroup (http://www.lvnus.org). He has authored/co-authored nearly 400 technicalpapers over a wide range of research topics, with Google Scholar citation12000 times. He is ISI highly-cited researcher 2014, and IAPR Fellow 2014. He hasbeen serving as an associate editor of IEEE Transactions on Knowledge and DataEngineering, Computer Vision and Image Understanding and IEEE Transactions onCircuits and Systems for Video Technology. He received the Best Paper Awardsfrom ACM MM’13 (Best paper and Best student paper), ACM MM’12 (Best demo),PCM’11, ACM MM’10, ICME’10 and ICIMCS’09, the runnerup prize of ILSVRC’13, thewinner prizes of the classification task in PASCAL VOC 2010–2012, the winnerprize of the segmentation task in PASCAL VOC 2012, the honorable mention prizeof the detection task in PASCAL VOC’10, 2010 TCSVT Best Associate Editor (BAE)Award, 2010 Young Faculty Research Award, 2011 Singapore Young Scientist Award,and 2012 NUS Young Researcher Award. His research interests includemachine learning, computer vision and multimedia. E-mail:eleyans@nus.edu.sg
个人分类: 好文推荐|592 次阅读|0 个评论
[转载]对偶学习的生成对抗网络 (DualGAN)
duxingren14 2017-4-10 23:17
原作:傅渥成 原链接: https://www.zhihu.com/people/fuwocheng/asks 作者:傅渥成 链接:https://zhuanlan.zhihu.com/p/26270773 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 近年来,生成对抗网络(Generative Adversarial Networks, GAN)成为了人工智能领域最为炙手可热的研究方向。GAN 的想法最早由 Ian Goodfellow 在 2014 年提出。GAN 用对抗的方法,同时训练了一个「生成模型(G)」与一个「判别模型(D)」,在学习的过程中,生成模型的优化目标是尽可能地去生成伪造的数据,从而获得真实数据的统计分布规律;而判别模型则用于判别给出的一个输入数据到底来源于真实数据还是生成模型。最终,当一个判别模型无法准确分辨生成模型所生成的数据是否为伪造时,此时我们认为判别模型与生成模型都已经提高到了较高的水平,生成模型所生成的数据足以模仿真实世界中的数据。因此,当我们使用 GAN 来「识别」图片时,我们不但识别了图片的内容,还可以生成各种不同内容的图片。费曼曾经说过:“What I cannot create, I do not understand.”生成模型为人工智能的研究提供了一种“create” 的可能性,因而引起了广泛的关注。 值得注意的是,生成模型所生成的结果并非是凭空来产生,更多的时候,很多图像处理和计算机视觉的问题都可以被看成是一种「图片翻译」的问题,例如一张人脸的照片以及与之对应的一张素描之间的相互转换就可以看成是从一张图片「翻译」为另外一张图片。事实上,更一般的,边界探测,图像分割,图片的风格化和抽象化等等都可以被视为是这样一种「翻译」问题。 而说到「翻译」,我们很容易会想到其在自然语言处理领域中的一些应用。近年来在机器翻译领域也有许多有意思的新进展。其中一种新的做法是对偶学习(dual learning),这种学习的方式为解决无监督学习中遇到的困难提供了新的思路。简要介绍一下这种学习方法的基本思路:假如现在小明只能讲中文, Alice 只会讲英文,他们两个人虽然都不懂对方的语言,但是他们希望能够可以中英文之间的两个翻译模型(中译英,英译中)。怎样可以实现他们的这个目的呢?首先,对于一个英文的句子,Alice 先用翻译工具将其翻译为中文,由于她并不懂中文,于是她直接把句子发给了小明;但小明又不懂英文,于是小明只能按照中文的语言习惯判断这个句子是否通顺,这可以帮助小明判断这个「英译中」的系统是否做得很好,随后,小明把他修改过的句子再用「中译英」的系统翻译成英文,并把英文句子发给 Alice。Alice 虽然不懂中文,但她能比较经过这一大圈的翻译之后,得到的新句子与最初的版本是否相似。这一信息可以帮助判断是否两个翻译模型都表现良好。随着「对偶学习」过程的持续进行,未标注的数据也得到了充分的利用,利用这些信息,可以帮助提高对偶任务中的两个翻译模型。这种对偶学习的想法为进一步改进现有的翻译模型提出了崭新的思路。 如果把这种对偶学习的方法也用到基于 GAN 的图片的「翻译」上,会得到怎样的效果呢?这会是一个非常有趣的问题。不久前,我的本科同学易子立( @Maoren Liu )和他的合作者们借用了对偶学习的思路,设计了一种名为对偶 GAN(DualGAN)的算法。说来有趣的是,我今年年初在写电子书《 人工智能是怎样设计的 》时,当时也与易子立讨论过电子书有关内容的选择和组织,在组织里面的内容时,考虑到这两种算法表现出的无监督特性,我有意地将对偶学习和 GAN 的介绍相邻排列在一起。 如果说原来的 GAN 是将图片的「识别」问题扩展为「生成」和「判别」两个问题,那么 DualGAN 算法就是将基本的 GAN 再进一步扩展为两个相互耦合的的 GAN,其中存在着两个生成器和两个判别器。以素描与照片之间的相互「翻译」为例进行说明,其中第一个生成器 可以将素描(U)翻译为照片(V), 所完成的任务正是我们最终想要完成的目的,与这个生成器对应的有一个判别器 。与此同时,构建与之对偶的另一个生成器 ,将照片转换为素描,与这个生成器所对应的同样有一个判别器 。 在这样的基本框架下,接下来我们来考虑怎样利用对偶学习的思路训练 GAN。首先我们介绍「生成」的思路,通过生成器 可以对素描图片 u 进行翻译,最终得到类似照片的图片,其中包含的噪声为 z,翻译的结果即为 ,把这个翻译的结果扔给另一个专门用于生成素描图片的生成器 ,得到的结果 即为对原有的素描图片的一次重构,这里的 z' 同样是噪声。接下来考虑与这一过程对偶的一个过程,首先将照片 v 用生成器 翻译为素描图 ,然后再用生成器 对生成的素描图进行翻译,得到 。 接下来介绍「判别」的思路,与生成器 对应的判别器 判断一张图片是否像一张照片,而与生成器 对应的判别器 则判断一张图片是否像一张素描图。对应于上面提到的对偶的生成过程,系统最终希望最小化重构误差,即希望最小化在两次迭代后得到的结果与原始图片之间的误差 和 。 根据这一基本思路,我们就可以真的来对图片做各种处理了。下面了展示这一算法得到的一些结果。这些相关结果分别与真实情况(ground truth)和其它算法得到的结果进行了比较,可以发现这一算法的确有着不错的表现。 (1)日景图片与夜景图片之间的转换 (2)图片和图片标签之间的相互「翻译」:对图片加标签和通过图片标签重建图片 (3)素描与照片之间的相互「翻译」 (4)地图与卫星图片之间的相互「翻译」 然而,还有一些情况,我们仅仅只能进行一些「翻译」,而无法找到正确的结果(ground truth)进行比较,例如图片风格的改变就属于这一类问题,然而这些问题本身就是一种没有正确答案的问题。这些问题尤为重要,因为这些问题涉及到真正的无监督学习。尽管「风格」的转换本身无法找到很好的度量方式,然而在某些特殊的问题上,仍然有一些检测的方法,例如用 AMT 材质感知测试,可以对图片中物品的材质进行一些「客观的」检验,这可以作为衡量「翻译」效果的一种度量。在这些应用方面,DualGAN 有着明显比 GAN 更好的无监督学习表现。 (5)中国画—油画之间的翻译 (6)金属、石头、木料、皮革、织物等材质之间的转换 这种基于对偶学习的 GAN 为图片与图片之间的「翻译」提供了新的思路,尤为重要的是,通过将 GAN 进一步进行扩充,这种方法把无监督学习的性质利用到了极致,因而在理论上具有很重要的意义。尽管这一算法目前的表现仍然有有待提高,然而与其它 GAN 的变形算法相比,例如与条件 GAN(conditional GAN, cGAN)相比,DualGAN 即使是面对完全没有加标签的数据,也可以产生足以与之相比的表现,这暗示了无监督学习的巨大潜力。考虑到 cGAN 等算法的训练需要引入大量的人工标签,DualGAN 等无监督学习的算法很可能可以大大降低加标签的成本,在进一步提高稳定性之后,值得相信其在未来有着重要的应用前景。 这篇论文的思路与最近很火的工作 Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 非常类似,但其实是独立的、来源于不同出发点的工作。在看到那个工作的有关介绍后,我觉得应该特别有必要站出来介绍一下易子立的这个工作。目前,这篇关于 DualGAN 算法的论文已经投稿到 ICCV 会议,原论文的 arXiv 地址为: Unsupervised Dual Learning for Image-to-Image Translation ,这个项目的程序可以到以下 GitHub 链接获取: duxingren14/DualGAN
个人分类: 人工智能|1750 次阅读|0 个评论
[转载]对偶学习的生成对抗网络 (DualGAN)
duxingren14 2017-4-10 22:19
原作:傅渥成 原链接: https://zhuanlan.zhihu.com/p/26270773 近年来,生成对抗网络(Generative Adversarial Networks, GAN)成为了人工智能领域最为炙手可热的研究方向。GAN 的想法最早由 Ian Goodfellow 在 2014 年提出。GAN 用对抗的方法,同时训练了一个「生成模型(G)」与一个「判别模型(D)」,在学习的过程中,生成模型的优化目标是尽可能地去生成伪造的数据,从而获得真实数据的统计分布规律;而判别模型则用于判别给出的一个输入数据到底来源于真实数据还是生成模型。最终,当一个判别模型无法准确分辨生成模型所生成的数据是否为伪造时,此时我们认为判别模型与生成模型都已经提高到了较高的水平,生成模型所生成的数据足以模仿真实世界中的数据。因此,当我们使用 GAN 来「识别」图片时,我们不但识别了图片的内容,还可以生成各种不同内容的图片。费曼曾经说过:“What I cannot create, I do not understand.”生成模型为人工智能的研究提供了一种“create” 的可能性,因而引起了广泛的关注。 值得注意的是,生成模型所生成的结果并非是凭空来产生,更多的时候,很多图像处理和计算机视觉的问题都可以被看成是一种「图片翻译」的问题,例如一张人脸的照片以及与之对应的一张素描之间的相互转换就可以看成是从一张图片「翻译」为另外一张图片。事实上,更一般的,边界探测,图像分割,图片的风格化和抽象化等等都可以被视为是这样一种「翻译」问题。 而说到「翻译」,我们很容易会想到其在自然语言处理领域中的一些应用。近年来在机器翻译领域也有许多有意思的新进展。其中一种新的做法是对偶学习(dual learning),这种学习的方式为解决无监督学习中遇到的困难提供了新的思路。简要介绍一下这种学习方法的基本思路:假如现在小明只能讲中文, Alice 只会讲英文,他们两个人虽然都不懂对方的语言,但是他们希望能够可以中英文之间的两个翻译模型(中译英,英译中)。怎样可以实现他们的这个目的呢?首先,对于一个英文的句子,Alice 先用翻译工具将其翻译为中文,由于她并不懂中文,于是她直接把句子发给了小明;但小明又不懂英文,于是小明只能按照中文的语言习惯判断这个句子是否通顺,这可以帮助小明判断这个「英译中」的系统是否做得很好,随后,小明把他修改过的句子再用「中译英」的系统翻译成英文,并把英文句子发给 Alice。Alice 虽然不懂中文,但她能比较经过这一大圈的翻译之后,得到的新句子与最初的版本是否相似。这一信息可以帮助判断是否两个翻译模型都表现良好。随着「对偶学习」过程的持续进行,未标注的数据也得到了充分的利用,利用这些信息,可以帮助提高对偶任务中的两个翻译模型。这种对偶学习的想法为进一步改进现有的翻译模型提出了崭新的思路。 如果把这种对偶学习的方法也用到基于 GAN 的图片的「翻译」上,会得到怎样的效果呢?这会是一个非常有趣的问题。不久前,我的本科同学易子立( @Maoren Liu )和他的合作者们借用了对偶学习的思路,设计了一种名为对偶 GAN(DualGAN)的算法。说来有趣的是,我今年年初在写电子书《 人工智能是怎样设计的 》时,当时也与易子立讨论过电子书有关内容的选择和组织,在组织里面的内容时,考虑到这两种算法表现出的无监督特性,我有意地将对偶学习和 GAN 的介绍相邻排列在一起。 如果说原来的 GAN 是将图片的「识别」问题扩展为「生成」和「判别」两个问题,那么 DualGAN 算法就是将基本的 GAN 再进一步扩展为两个相互耦合的的 GAN,其中存在着两个生成器和两个判别器。以素描与照片之间的相互「翻译」为例进行说明,其中第一个生成器 可以将素描(U)翻译为照片(V), 所完成的任务正是我们最终想要完成的目的,与这个生成器对应的有一个判别器 。与此同时,构建与之对偶的另一个生成器 ,将照片转换为素描,与这个生成器所对应的同样有一个判别器 。 在这样的基本框架下,接下来我们来考虑怎样利用对偶学习的思路训练 GAN。首先我们介绍「生成」的思路,通过生成器 可以对素描图片 u 进行翻译,最终得到类似照片的图片,其中包含的噪声为 z,翻译的结果即为 ,把这个翻译的结果扔给另一个专门用于生成素描图片的生成器 ,得到的结果 即为对原有的素描图片的一次重构,这里的 z' 同样是噪声。接下来考虑与这一过程对偶的一个过程,首先将照片 v 用生成器 翻译为素描图 ,然后再用生成器 对生成的素描图进行翻译,得到 。 接下来介绍「判别」的思路,与生成器 对应的判别器 判断一张图片是否像一张照片,而与生成器 对应的判别器 则判断一张图片是否像一张素描图。对应于上面提到的对偶的生成过程,系统最终希望最小化重构误差,即希望最小化在两次迭代后得到的结果与原始图片之间的误差 和 。 根据这一基本思路,我们就可以真的来对图片做各种处理了。下面了展示这一算法得到的一些结果。这些相关结果分别与真实情况(ground truth)和其它算法得到的结果进行了比较,可以发现这一算法的确有着不错的表现。 (1)日景图片与夜景图片之间的转换 (2)图片和图片标签之间的相互「翻译」:对图片加标签和通过图片标签重建图片 (3)素描与照片之间的相互「翻译」 (4)地图与卫星图片之间的相互「翻译」 然而,还有一些情况,我们仅仅只能进行一些「翻译」,而无法找到正确的结果(ground truth)进行比较,例如图片风格的改变就属于这一类问题,然而这些问题本身就是一种没有正确答案的问题。这些问题尤为重要,因为这些问题涉及到真正的无监督学习。尽管「风格」的转换本身无法找到很好的度量方式,然而在某些特殊的问题上,仍然有一些检测的方法,例如用 AMT 材质感知测试,可以对图片中物品的材质进行一些「客观的」检验,这可以作为衡量「翻译」效果的一种度量。在这些应用方面,DualGAN 有着明显比 GAN 更好的无监督学习表现。 (5)中国画—油画之间的翻译 (6)金属、石头、木料、皮革、织物等材质之间的转换 这种基于对偶学习的 GAN 为图片与图片之间的「翻译」提供了新的思路,尤为重要的是,通过将 GAN 进一步进行扩充,这种方法把无监督学习的性质利用到了极致,因而在理论上具有很重要的意义。尽管这一算法目前的表现仍然有有待提高,然而与其它 GAN 的变形算法相比,例如与条件 GAN(conditional GAN, cGAN)相比,DualGAN 即使是面对完全没有加标签的数据,也可以产生足以与之相比的表现,这暗示了无监督学习的巨大潜力。考虑到 cGAN 等算法的训练需要引入大量的人工标签,DualGAN 等无监督学习的算法很可能可以大大降低加标签的成本,在进一步提高稳定性之后,值得相信其在未来有着重要的应用前景。 这篇论文的思路与最近很火的工作 Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 非常类似,但其实是独立的、来源于不同出发点的工作。在看到那个工作的有关介绍后,我觉得应该特别有必要站出来介绍一下易子立的这个工作。目前,这篇关于 DualGAN 算法的论文已经投稿到 ICCV 会议,原论文的 arXiv 地址为: Unsupervised Dual Learning for Image-to-Image Translation ,这个项目的程序可以到以下 GitHub 链接获取: duxingren14/DualGAN
个人分类: 人工智能|5508 次阅读|0 个评论
IJAC4月最新出版:颜水成团队深度学习综述+多篇国重研究成果
Chenfiona 2017-4-6 18:10
刚刚挥泪告别清明小长假,小主们的内心是不是又多了一丝不舍和惆怅?小编教您一招,成功摆脱假期综合症。来,跟我一起大声念 :我爱学习,学习使我快乐! 那么,问题来了,该学点什么呢? 2017 年IJAC 第2 期正式发行,蓝皮大本纯干货,我们只登最热乎最大牛最有价值的研究! 这里有360 首席科学家关于“深度学习”的综述,有国家自然科学基金支持、国家重点实验室出身的最新成果,还有加拿大、突尼斯等国际学者带来的学神级研究 ,快来阅读! 【研究综述 + 国家自然科学基金项目】 作者: 360 首席科学家、新加坡国立大学颜水成副教授团队 题目: A survey on deep learning-basedfine-grained object classification and semantic segmentation 综述: 基于深度学习的细粒度图像分类方法( deep learning basedfine-grained image classification approaches )、语义分割方法( semantic segmentationapproaches ),基于区域方案和完全卷积网络的语义分割方法( the region proposal based and fully convolutional networksbased approaches for semantic segmentation ) 关键词: Deep learning, fine-grainedimage classification, semantic segmentation, convolutional neural network (CNN),recurrent neural network (RNN). 全文下载 : http://link.springer.com/article/10.1007/s11633-017-1053-3 Or: http://www.ijac.net/EN/abstract/abstract1901.shtml 【国家自然科学基金项目 + 国家重点实验室】 题目 : PLS-CCA heterogeneous features fusion-based low-resolutionhuman detection method for outdoor video surveillance 作者 : Hong-Kai Chen , Xiao-Guang Zhao , Shi-Ying Sun , Min Tan 关键词: Low-resolution human detection, partial least squares, canonical correlation analysis, heterogeneous features, outdoor video surveillance. 全文下载 : http://link.springer.com/article/10.1007/s11633-016-1029-8 Or: http://www.ijac.net/EN/abstract/abstract1902.shtml 【国家自然科学基金项目 + 国家重点实验室】 题目: Method for visual localizationof oil and gas wellhead based on distance function of projected features 作者 : Ying Xie , Xiang-Dong Yang , Zhi Liu , Shu-Nan Ren , Ken Chen 关键词 : Robot vision, visual localization, 3D object localization, model based pose estimation, distance function of projected features, nonlinear least squares, random sample consensus (RANSAC). 全文下载 : http://link.springer.com/article/10.1007/s11633-017-1063-1 Or: http://www.ijac.net/EN/abstract/abstract1903.shtml 【“ 863 计划” + 国家自然科学基金项目 + 国家重点实验室】 题目: A new monocular visionmeasurement method to estimate 3D positions of objects on floor 作者: Ling-Yi Xu , Zhi-Qiang Cao , Peng Zhao , Chao Zhou 关键词: Visual measurement, calibration, localization, position estimation, monocular vision. 全文下载: http://link.springer.com/article/10.1007/s11633-016-1047-6 Or: http://www.ijac.net/EN/abstract/abstract1904.shtml 【“ 973 计划” + 教育部新世纪优秀人才支持计划】 题目: Singularity robust pathplanning for real time base attitude adjustment of free-floating space robot 作者 : Cheng Zhou , Ming-He Jin , Ye-Chao Liu , Ze Zhang , Yu Liu , Hong Liu 关键词 : Space robot, path planning, base attitude adjustment, task priority, reaction null-space. 全文下载 : http://link.springer.com/article/10.1007/s11633-017-1055-1 Or: http://www.ijac.net/EN/abstract/abstract1905.shtml 【马来西亚高等教育部支持项目( MIRGS )】 题目 : Quasi-inverse pendulum model of12 DoF bipedal walking 作者 : M. Akhtaruzzaman , Amir A. Shafie , Md. Raisuddin Khan 关键词 : Humanoid robot, quasi-inverse pendulum, gait, trajectory planning, Anthropoid. 全文下载 : http://link.springer.com/article/10.1007/s11633-016-1023-1 Or: http://www.ijac.net/EN/abstract/abstract1906.shtml 【加拿大学者研究成果】 题目 : An adaptive full order slidingmode controller for mismatched uncertain systems 作者 : Sanjoy Mondal , Jawhar Ghommam , Maarouf Saad 关键词 : Full order sliding mode, adaptive sliding mode, finite time convergence, reference tracking, mismatched uncertainty. 全文下载 : http://link.springer.com/article/10.1007/s11633-017-1057-z Or: http://www.ijac.net/EN/abstract/abstract1907.shtml 【突尼斯学者研究成果】 题目 : A sliding mode observer foruncertain nonlinear systems based on multiple models approach 作者 : Kaïs Hfaïedh , Karim Dahech , Tarak Damak 关键词 : Uncertain nonlinear system, norm bounded uncertainty, multiple models approach, multiple observer, sliding mode observer. 全文下载 : http://link.springer.com/article/10.1007/s11633-016-0970-x Or: http://www.ijac.net/EN/abstract/abstract1908.shtml 【国家自然科学基金项目 + 泰山学者工程】 题目 : Regional stability of positiveswitched linear systems with multi-equilibrium points 作者 : Zhi Liu , Yu-Zhen Wang 关键词 : Regional stability, positive switched linear system, multi-equilibrium points, common linear Lyapunov function, multiple Lyapunov function. 全文下载 : http://link.springer.com/article/10.1007/s11633-016-1003-5 Or: http://www.ijac.net/EN/abstract/abstract1909.shtml 【国家自然科学基金项目 + 江西省重点实验室】 题目 : An adaptive regulation problemand its application 作者 : Yuan Jiang , Ji-Yang Dai 关键词 : Control theory, Lyapunov methods, internal model principle, modified FitzHugh-Nagumo model. 全文下载 : http://link.springer.com/article/10.1007/s11633-015-0900-3 Or: http://www.ijac.net/EN/abstract/abstract1910.shtml 【国家自然科学基金项目 + 中科院重点实验室】 题目 : Dynamics and stability ofpotential hyper-networked evolutionary games 作者 : Ting Liu , Yuan-Hua Wang , Dai-Zhan Cheng 关键词 : (Hyper-) Networked evolutionarygame (HNEG), potential, cascading myopic best response adjustment rule (MBRAR), Nash equilibrium, semi-tensor product of matrices. 全文下载 : http://link.springer.com/article/10.1007/s11633-017-1056-0 Or: http://www.ijac.net/EN/abstract/abstract1911.shtml ----------------------------------------------------------------------------------------------------------------- 【 IJAC Reviews and Highlight Articlesin 2016-2017 】: ----------------------------------------------------------------------------------------------------------------- 1. Why and when can deep-but not shallow-networks avoid thecurse of dimensionality: A review 【 Deep learning 】 Tomaso Poggio, HrushikeshMhaskar, Lorenzo Rosasco, Brando Miranda, Qianli Liao Full Text: https://link.springer.com/article/10.1007/s11633-017-1054-2 2. PinningControl and Controllability of Complex Dynamical Networks Guanrong Chen Full Text: https://link.springer.com/article/10.1007/s11633-016-1052-9 Or: http://www.ijac.net/EN/abstract/abstract1865.shtml 3. Advances invehicular ad-hoc networks (VANETs): Challenges and road-map for futuredevelopment Elias C. Eze, Si-Jing Zhang, En-Jie Liu, Joy C. Eze Full Text: http://link.springer.com/article/10.1007/s11633-015-0913-y Or: http://www.ijac.net/EN/abstract/abstract1803.shtml 4. CooperativeFormation Control of Autonomous Underwater Vehicles: An Overview BikramadityaDas, Bidyadhar Subudhi, Bibhuti Bhusan Pati Full Text: http://link.springer.com/article/10.1007/s11633-016-1004-4 Or: http://www.ijac.net/EN/abstract/abstract1821.shtml 5. Review of SomeAdvances and Applications in Real-time High-speed Vision: Our Views andExperiences Qing-Yi Gu,Idaku Ishii Full Text: http://link.springer.com/article/10.1007/s11633-016-1024-0 Or: http://www.ijac.net/EN/abstract/abstract1808.shtml 6. Minimal GatedUnit for Recurrent Neural Networks 【 Deep learning 】 Guo-Bing Zhou,Jianxin Wu, Chen-Lin Zhang, Zhi-Hua Zhou Full Text: http://link.springer.com/article/10.1007/s11633-016-1006-2 Or: http://www.ijac.net/EN/abstract/abstract1822.shtml ---------------------------------------------------------------------------------------------------------------- 【 IJAC Survey Papers in 2015 】 ---------------------------------------------------------------------------------------------------------------- 1. A Survey ofRecent Results in Quantized and Event-based Nonlinear Control Zhong-PingJiang, Teng-Fei Liu Full Text: http://link.springer.com/article/10.1007/s11633-015-0906-x Or: http://www.ijac.net/EN/abstract/abstract1774.shtml 2. RecentProgressin Networked Control Systems-A Survey Yuan-Qing Xia, Yu-Long Gao, Li-PingYan,Meng-Yin Fu Full Text: http://link.springer.com/article/10.1007/s11633-015-0894-x Or: http://www.ijac.net/EN/abstract/abstract1772.shtml 3. DistributedControl of Chemical Process Networks Michael J.Tippett, Jie Bao Full Text: http://link.springer.com/article/10.1007/s11633-015-0895-9 Or: http://www.ijac.net/EN/abstract/abstract1724.shtml 4. FeatureSelection and FeatureLearning for High-dimensional Batch ReinforcementLearning: A Survey De-Rong Liu,Hong-Liang, Li Ding Wang Full Text: http://link.springer.com/article/10.1007/s11633-015-0893-y Or: http://www.ijac.net/EN/abstract/abstract1704.shtml 5. ObserverDesign—A Survey Chia-Chi Tsui Full Text: http://link.springer.com/article/10.1007/s11633-014-0865-7 Or: http://www.ijac.net/EN/abstract/abstract1712.shtml ---------------------------------------------------------------------------------------------------------------------------- Available Online at: SpringerLink : http://link.springer.com/journal/11633 IJAC Website : http://www.ijac.net For Free 【 Accepted Articles published OnlineFirst on SpringerLink 】 : http://link.springer.com/journal/11633 【 Special Issue list in IJAC 】 : http://www.ijac.net/EN/column/column292.shtml -----------------------------------------------------------------
个人分类: 期刊目录|803 次阅读|0 个评论
【重磅推荐】MIT Tomaso Poggio关于深度学习机理的研究
Chenfiona 2017-3-16 16:31
上周,在IJAC优先在线发表的几篇论文中,麻省理工美国人文与科学院院士Tomaso Poggio的一篇有关深度学习的综述成为一大亮点。Poggio教授在这篇文章中阐述了有关神经网络深度学习的一个基本问题:为什么深层网络比浅层网络更好? 文章内容延续了Poggio教授在2016年8月在中国人工智能大会(2016CCAI)上的演讲报告《The Science and the Engineering ofIntelligence》。 图1 来源于2016 CCAI 演讲PPT 图2 来源于2016 CCAI 演讲PPT “ 深度学习架构和机器学习模式的搭建,来自于神经学方面的研究进展,换句话说,同样的架构是存在于大脑皮质当中的。 关于深度学习,已经有成千上万的研究者在不同领域进行这方面的研究,比如无人驾驶、语音识别等等。可是我们还不清楚,为什么深度学习在这些工程应用中会起作用,深度学习的机理是什么? 我们对这个问题很感兴趣另外一个原因是:探讨深度学习的机理也将有助于我们理解‘为什么大脑皮质会存在一些不同的层次?’ ” Poggio 教授在这篇文章中,将为您解读深度学习的关键理论、最新成果和开放式研究问题。 同时这篇文章也是IJAC即将发表的 Special Issue on Human Inspired Computing 中的一篇文章。该专题其他热文将陆续优先在线发表,敬请期待。 一点点题外话:小编在去年的CCAI大会上有幸拜访了Poggio教授,教授博学、谦逊而富有亲和力的形象给小编也留下深刻印象。他曾提到:期望能帮助年轻人更好的了解神经科学、理解机器学习。如果要在智能方面走得远,不能只靠计算机,还需要与人类本身的研究相互结合,才能碰撞出更多的东西。 接下来,小编将为您奉上这篇文章的具体信息,以及IJAC近期在线发表的其他文章链接,欢迎下载阅读 【 Title 】 Why and when can deep-but not shallow-networksavoid the curse of dimensionality: A review 【 Author 】 Tomaso Poggio, Hrushikesh Mhaskar, LorenzoRosasco, Brando Miranda, Qianli Liao 【 Abstract 】 The paper reviews and extends an emerging bodyof theoretical results on deep learning including the conditions under which itcan be exponentially better than shallow learning. A class of deepconvolutional networks represent an important special case of these conditions,though weight sharing is not the main reason for their exponential advantage.Implications of a few key theorems are discussed, together with new results,open problems and conjectures. 【 Keywords 】 Machine learning, neural networks, deep andshallow networks, convolutional neural networks, function approximation, deeplearning 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-017-1054-2 【 Publish date 】 Published online March 14, 2017 The other recentlypublished online papers include: 【 Title 】 Improvement of wired drill pipe data qualityvia data validation and reconciliatio 【 Author 】 Dan Sui, Olha Sukhoboka, Bernt Sigve Aadnøy 【 Keywords 】 Data quality, wired drill pipe (WDP), datavalidation and reconciliation (DVR), drilling models 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-017-1068-9 【 Publish date 】 Published online March 4, 2017 【 Title 】 Reaction torque control of redundantfree-floating space robot 【 Author 】 Ming-He Jin, Cheng Zhou, Ye-Chao Liu, Zi-QiLiu, Hong Liu 【 Keywords 】 Redundant space robot, reaction torque,reactionless control, base disturbance minimization, Linux/real timeapplication interface (RTAI) 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-017-1067-x 【 Publish date 】 Published online March 4, 2017 【 Title 】 A piecewise switched linear approach fortraffic flow modeling 【 Author 】 Abdelhafid Zeroual,Nadhir Messai, SihemKechida, Fatiha Hamdi 【 Keywords 】 Switched systems, modeling, macroscopic,traffic flow, data calibration 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-017-1060-4 【 Publish date 】 Published online March 4, 2017 【 Title 】 Navigation of non-holonomic mobile robot usingneuro-fuzzy logic with integrated safe boundary algorithm 【 Author 】 A. Mallikarjuna Rao, K. Ramji, B. S. K.Sundara Siva Rao, V. Vasu, C. Puneeth 【 Keywords 】 Robotics, autonomous mobile robot (AMR),navigation, fuzzy logic, neural networks, adaptive neuro-fuzzy inference system(ANFIS), safe boundary algorithm 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-016-1042-y 【 Publish date 】 Published online March 4, 2017 【 Title 】 Method for visual localization of oil and gaswellhead based on distance function of projected features 【 Author 】 Ying Xie, Xiang-Dong Yang, Zhi Liu, Shu-NanRen, Ken Chen 【 Keywords 】 Robot vision, visual localization, 3D objectlocalization, model based pose estimation, distance function of projectedfeatures, nonlinear least squares, random sample consensus (RANSAC) 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-017-1063-1 【 Publish date 】 Published online March 4, 2017 【 Title 】 Virtual plate based controlling strategy oftoy play for robots communication development in JA space 【 Author 】 Wei Wang, Xiao-Dan Huang 【 Keywords 】 Human robot cooperation, joint attention (JA)space, reachable space, toy play ability, a virtual plate 【 Full Text 】 https://link.springer.com/article/10.1007/s11633-016-1022-2 【 Publish date 】 Published online February 21, 2017   阅读更多IJAC优先在线出版论文: https://link.springer.com/journal/11633
个人分类: 好文推荐|712 次阅读|0 个评论
跨越种族的爱:Generalized Similarity Measure
jingyanwang 2017-2-8 14:07
微信公众号 readpami 求关注,求扩散,求打赏 Cross-Domain Visual Matching via Generalized Similarity Measure and Feature Learning Liang Lin; Guangrun Wang; Wangmeng Zuo; Feng Xiangchu; Lei Zhang IEEE Transactions on Pattern Analysis and Machine Intelligence Year: 2016, Volume: PP, Issue: 99 Pages: 1 - 1, DOI: 10.1109/TPAMI.2016.2567386 Generalized Similarity Measure:跨越种族的爱 red.pdf
个人分类: RED|4805 次阅读|0 个评论
【语言学家妄论深度学习和AI,旨在 invite questions】
liwei999 2016-12-10 07:27
与董老师调侃AI泡沫,不过泡沫归泡沫,这次ai热让我们看清了几点: 第一是 大数据里面有名堂 不全是虚的。 第二是 长远一点看 ai 和 nlp 在领域里可以解决实际问题 譬如 我们做的客户情报产品 虽然发现市场没有预想的那么大 但价值是确认了 第三是 深度神经是技术突破 真东西 虽然目前被神话了。至少在 nmt 中 我们看到了以前达不到的质量。语音方面已经提升了整个产业的水平。 第四是 nlp 与大数据结合 让我们看到很多可能。虽然并不是每一种可能都可以满足某种社会刚需 但nlp大规模实用的大门已经开启 就看谁的市场角度对路了。 有一位风头正健冲在世界最前沿的深度学习大牛好友,看了我 最新的博文 【 如何自动识别同一个意思千变万化的表达 】, 回说:李老师你还没有理解深度学习啊,深度学习做这件事儿(识别一个 statement 的千变万化的语言表达)其实比较简单。 我不懂深度学习,那是肯定的。说这件事儿很简单,我有点存疑。至少目前所有做 bots 和问答系统的人,都在 fight 这个挑战,不能说已经完美解决。当然,Siri 这类显示了在 apps 上的应用,令人印象深刻。 Anyway,我的回答是,我们属于同类,心态和世界观是一样的。手里有把得心应手的锤子,世界就变成了钉子。区别只是锤子的不同,我不懂你的锤子,你也未必使得了我的锤子。术业有专攻,隔锤如隔山。但我确认,我的锤子可以对付这个钉子。 咱们还是来个友谊赛吧,否则这个世界多么单调。 无监督学习除了 clustering 在某些特定场景可以得到应用外,基本还是 research 的探索性质吧,没人指望它能大规模应用。clustering 到 classification 还有不小的距离,总得有某种监督或人参与才靠谱吧。那天我说,学习界啥时把机器放到raw data 的语言大海里,机器就跟小孩一样学会了语言,那才是牛逼翻天了。否则的话,你有你的知识瓶颈(巨量带标数据),我有我的知识瓶颈(专家经验),谁的瓶颈更大难说着呢。 深度神经学习前,semi-supervised 的研究很热。至少从研究角度,那个领域是令人兴奋和期待的。说的是以最少的监督(种子啥的少量带标数据,或者人工的规则做引子),结合 raw data 去试图引导系统按照指定的方向做事儿。听上去在轨道上,至少不是所谓完全的无监督那种让人觉得不靠谱。还有就是白老师的语义计算主张,不必用带标数据,但要用丰富的词典信息,结合 raw data 做 parsing,也用到深度学习模型RNN啥的,听上去也是可行的。这是因为词典信息里面已经隐含了深入的人工监督(语言学知识和用法),各种 expectations 譬如 subcat,然后到大数据里面去定位。 微博上有人问除了图像和语音,文本NLP方面,深度学习有突破吗?我的记忆中,至少n月前,相当普遍有说,深度神经在文本遭遇瓶颈(by 看到瓶子有一半是空的人),或文本有待突破(by 看到瓶子有一半是满的人)。由于DL乐观主义流行加上全世界的CL牛人都憋足了劲儿地攻关努力,据说最近收到的答案是:文本也很突破了。 于是我正面反面各问了一下,拷贝于下,在此一并求教方家: 谁能给个神经在文本NLP中突破的清单就好了, 看 so far 到底哪些是真突破,哪些仍是瓶颈?先起个头,突破似乎表现在: 1 NMT,例如谷歌翻译,特别是中到英,的确突破性发展了 (百度声称更早神经了,但翻译质量远不如谷歌NMT令人印象深刻,虽然在前神经时代,百度的中文方面的SMT比谷歌强); 2 SyntaxNet 至少在新闻正规文本上,parsing 比前突破了,已经达到 94%,虽然 离应用还远 ,虽然 不是声称的世界第一 关于神经在文本NLP上的瓶颈也抛块砖: 1. 迄今的突破都是 supervised 的,倚赖的是 insatiable 的巨量带标数据: 带标数据于是成为知识瓶颈; 2 对于众多领域和文体,神经系统基本没有适应性,除非假设有海量领域数据可以重新训练成功; 3 几乎所有 unsupervised 尝试都是研究性质,离应用还远; 4 模型庞大带来的costs:训练和运行对计算资源的高要求 5. 迄今的端对端系统的神经应用,未见用到语言结构或理解,隐含层里的葫芦据说人也解不透; 6. 貌似黑箱子,有说 debug 不易(统计模型黑箱子不易debug的毛病以前是公认的痛点,不过最近有深度学习大牛一再强调,这个箱子一点也不黑,debug 也容易,此瓶颈存疑); 端对端除了 NMT,还有哪些投入大规模应用的文本处理系统?似乎还在探索中,成熟的不多。在IE和QA领域,不久应该会有某种突破,因为这两个领域的系统基本是端对端,只要somehow(人海战术?)得到了大量的带标数据,突破是可以期待的。不过,在这些方面,高明的规则系统已经有了很好很快的解决方案。不信,可以到时候拉出来遛遛。 【相关】 It is untrue that Google SyntaxNet is the world's most accurate parser ... 【李白对话录之八:有语义落地直通车的parser才是核武器】 【谷歌NMT,见证奇迹的时刻】 【泥沙龙笔记:语法工程派与统计学习派的总结】 【新智元笔记:两条路线上的NLP数据制导】 《立委随笔:语言自动分析的两个路子》 Comparison of Pros and Cons of Two NLP Approaches 中文处理 Parsing 【置顶:立委NLP博文一览】 《朝华午拾》总目录
个人分类: 立委科普|3215 次阅读|0 个评论
[转载]Google研究总监Peter Norvig:人工智能的另一面
Kara0807 2016-8-19 07:50
Google研究总监Peter Norvig:人工智能的另一面 Peter Norvig 是誉满全球的人工智能专家, Google 研究总监( Director of Research ),他同时也是经典书籍《人工智能编程范式: Common Lisp 案例研究》( Paradigms of AI Programming: Case Studies inCommon Lisp )和《人工智能:一种现代方法》( Artificial Intelligence: A Modern Approach )的作者 / 合著者。在本文中,我们将看到 Peter Norvig 对人工智能目前进展和未来发展的思考,对人工智能技术在 Google 应用的解读,以及对最新软件工程师在人工智能时代的成长的观点。 Peter Norvig 眼中的人工智能 问:人工智能领域在哪些方面发生了您未曾预料的演变? Peter Norvig : 在 1980 年我开始从事人工智能研究时人工智能意味着:一位研究生用说明性语言写下事实,然后拨弄这些事实和推理机制,直到从精心挑选的样本上得到不错的结果,然后写一篇关于它的论文。 虽然我接受并遵循这种工作模式,在我获得博士学位的过程中,我发现了这种方法的三个问题: 写下事实太慢了。 我们没有处理异常情况或模糊状态的良好方法。 这个过程不科学 —— 即使在选定的样本上它能工作,但是在其他样本上工作效果会如何呢? 整个领域的演变回答了这三个问题: 我们依靠机器学习,而不是研究生付出的辛苦努力。 我们使用概率推理,而不是布尔逻辑。 我们希望使用科学严格的方式;我们有训练数据和测试数据的概念,而且我们也有比较不同系统处理标准问题所得到的结果。 1950 年,阿兰图灵写道: “ 我们只能看到未来很短的一段距离,但是我们很清楚还有什么需要完成。 ” 自从 1950 年,我们已经得到许多发展并实现了许多目标,但图灵的话仍然成立。 问:对于机器学习研究,工业界与学术界有何不同呢? Peter Norvig : 我认为,在教育机构、商业机构还是政府机构并不是很重要 —— 我曾经在这三种机构都学到很多东西。 我建议你在有着一群出色同事和有趣问题的环境下工作。可以是工业界、学术界、政府或者非营利企业,甚至开源社区。在这些领域里,工业界往往有更多的资源(人、计算能力和数据),但如今有很多公开可用的数据供你使用,一个小团队,一台笔记本电脑,或者一个小而廉价的 GPU 集群,或者在云计算服务上租赁或捐献时间。 问:您对深度学习有什么看法? Peter Norvig : 我清楚地记得 80 年代初的那一天, Geoff Hinton 来到伯克利进行了关于玻尔兹曼机的讲座。对我来说,这是个了不起的视角 —— 他不赞同符号主义人工智能很强大很有用,而我了解到了一种机制,有三件令人兴奋的新(对我而言)事情:根据大脑模型得出的认知合理性;从经验而不是手工编码中学习的模型;还有表示是连续的,而不是布尔值,因此可以避免传统符号专家系统的一些脆弱问题。 事实证明,玻尔兹曼机在那个时代并没有广泛普及,相反, Hinton 、 LeCun 、 Bengio 、 Olshausen 、 Osindero 、 Sutskever 、 Courville 、 Ng 以及其他人设计的架构得到很好的普及。是什么造成了这种不同呢?是一次一层的训练技术吗?是 ReLU 激活函数?是需要更多的数据?还是使用 GPU 集群可以更快地训练?我不敢肯定,我希望持续的分析可以给我们带来更好的了解。但我可以说,在语音识别、计算机视觉识别物体、围棋和其他领域,这一差距是巨大的:使用深度学习可以降低错误率,这两个领域在过去几年都发生了彻底变化:基本上所有的团队都选择了深度学习,因为它管用。 许多问题依然存在。在计算机视觉里,我们好奇深度网络实际上在做什么:我们可以在一个级别上确定线条识别器,在更高层次确定眼睛和鼻子识别器,然后就是脸部识别器,最终就是整个人的识别器。但在其他领域,一直很难了解网络在做什么。是因为我们没有正确的分析和可视化工具吗?还是因为实际上表示不一致? 在有许多数据的时候,深度学习在各种应用中表现不错,但对于一次性或零次学习,需要将一个领域的知识转移并适应到当前领域又如何呢?深度网络形成了什么样的抽象,我们可以如何解释这些抽象并结合它们?网络会被对抗性输入愚弄;我们如何预防这些,它们代表了根本缺陷还是不相干的把戏? 我们如何处理一个领域中的结构?我们有循环网络( Recurrent Networks )来处理时间,递归网络( Recrsive Networks )来处理嵌套结构,但这些是否已经足够,现在讨论还为时过早。 我对深度学习感到兴奋,因为很多长期存在的领域也是如此。而且我有兴趣了解更多,因为还有许多剩余问题,而且这些问题的答案不仅会告诉我们更多关于深度学习的东西,还可以帮助我们大体理解学习、推理和表示。 问:在深度学习最近取得的成就之后,符号主义人工智能是否还有意义? Peter Norvig : 是的。我们围绕着符号主义人工智能开发了许多强大的原理:逻辑预测、约束满足问题、规划问题、自然语言处理,乃至概率预测。因为这些算法的出色表现,我们处理问题的能力比原来提升了几个数量级。放弃这一切是件可耻的事。我认为其中一个有意识的研究方向是回过头看每一种方法,探索非原子式符号被原子式符号取代的这个过程究竟发生了什么,诸如 Word2Vec 产生的 Word Embedding 之类的原理。 下面是一些例子。假设你有这些逻辑 “ 事实 ” : 1. 人会说话; 2. 除人以外的动物不会说话; 3. 卡通人物角色会说话; 4. 鱼会游泳; 5. 鱼是除人以外的动物; 6. Nemo 是一个卡通人物; 7. Nemo 是一条鱼; 8. 那么我们要问了: 9. Nemo 会说话吗? 10. Nemo 会游泳吗? 用逻辑来表述和解释这个场景的时候遇到了两个大问题。首先,这些事实都有例外,但是用逻辑很难穷举这些例外情况,而且当你逻辑出错的时候预测就会出问题了。其次,在相互矛盾的情况下则逻辑无能为力,就像这里的 Nemo 既会说话又不会说话。也许我们可以用 Word Embedding 技术来解决这些问题。我们还需要 Modus Ponens Embedding (分离规则,一种数学演绎推理规则)吗?不学习 “ 如果 A 且 A 暗示 B ,则 B” 这样一种抽象的规则,我们是否可以学习何时应用这种规则是恰当的?我觉得这是一个重要的研究领域。 再说一点:许多所谓的符号主意人工智能技术实际上还是优秀的计算机科学算法。举个例子,搜索算法,无论 A* 或是蚁群优化,或是其它任何东西,都是一种关键的算法,永远都会非常有用。即使是基于深度学习的 AlphaGo ,也包含了搜索模块。 问:我们哪儿做错了?为什么 Common Lisp 不能治愈世界? Peter Norvig : 我认为 Common Lisp 的思想确实能治愈这个世界。如果你回到 1981 年, Lisp 被视作是另类,因为它所具有的下面这些特性还不被 C 语言程序员所知: 1. 垃圾回收机制; 2. 丰富的容器类型及相应的操作; 3. 强大的对象系统,伴随着各种继承和原生函数; 4. 定义测试例子的亚语言( sublanguage )(并不属于官方版本的一部分,但我自己配置了一套); 5. 有交互式的读入 - 运算 - 打印循环; 6. 敏捷的、增量式的开发模式,而不是一步到位的模式; 7. 运行时对象和函数的自省; 8. 能自定义领域特定语言的宏。 如今,除了宏之外的所有这些特性都在主流编程语言里非常常见。所以说它的思想取胜了,而 Common Lisp 的实现却没有 —— 也许是因为 CL 还遗留了不少 1958 年编程语言的陋习;也许只是因为一些人不喜欢用大括号。 至于说宏,我也希望它能流行起来,但当用到宏的时候,你成为了一名语言设计者,而许多开发团队喜欢保持底层语言的稳定性,尤其是那些大团队。我想最好有一套使用宏的实用指南,而不是把它们全部抛弃(或是在 C 语言里严格限制的宏)。 问:在未来 10 年里,有没有哪些情况下软件工程师不需要学习人工智能或机器学习的,还是每个人都需要学习? Peter Norvig : 机器学习将会是(或许已经是)软件工程的一个重要部分,每个人都必须知道它的运用场景。但就像数据库管理员或用户界面设计一样,并不意味着每个工程师都必须成为机器学习专家 —— 和这个领域的专家共事也是可以的。但是你知道的机器学习知识越多,在构建解决方案方面的能力就越好。 我也认为机器学习专家和软件工程师聚在一起进行机器学习系统软件开发最佳实践将会很重要。目前我们有一套软件测试体制,你可以定义单元测试并在其中调用方法,比如 assertTrue 或者 assertEquals 。我们还需要新的测试过程,包括运行试验、分析结果、对比今天和历史结果来查看偏移、决定这种偏移是随机变化还是数据不平稳等。这是一个伟大的领域,软件工程师和机器学习人员一同协作,创建新的、更好的东西。 问:我想从软件工程师转行成为人工智能研究员,应该如何训练自己呢? Peter Norvig : 我认为这不是转行,而是一种技能上的提升。人工智能的关键点在于搭建系统,这正是你手头上的工作。所以你在处理系统复杂性和选择合适的抽象关系方面都有经验,参与过完整的设计、开发和测试流程;这些对于 AI 研究员和软件工程师来说都是基本要求。有句老话这样说,当一项人工智能技术成功之后,它就不再属于人工智能,而是成为了软件工程的一部分。人工智能工作者抱怨上述观点的意思就是他们的工作永远离成功有一步之遥,但你可以认为这表明你只是需要在已知的基础上再添加一些新概念和新技术。 人工智能在 Google 问: Google“ 没有更好的算法,只是多了点数据而已 ” 这种说法是真的吗? Peter Norvig : 我曾引用微软研究院 Michele Banko 和 Eric Brill 发表的一篇关于分析词性辨析算法的论文,他们发现增加训练数据得到的效果提升比更换算法更明显。我说过有些问题确实如此,而另一些问题则不见得。你可以认为这篇论文是 “ 大数据 ” 的功劳,但要注意,在这个领域十亿个单词规模的训练数据集就能看出效果 —— 在笔记本电脑的处理范围内 —— 还不到数据中心的量级。所以,如果你用不了数据中心,不必担心 —— 你拥有的计算资源和数据量几乎完胜任何一个上一代的人,你可以有更多的新发现。 所以没错,大量与任务相契合的高质量数据必然会有帮助。然而真正有挑战的工作在于发明新学习系统的研究和让其真正落实到产品中的工程实现。这个工作正是大多数机器学习成功案例的驱动力。正如 Pat Winston 所说: “ 人工智能就像葡萄干面包里的葡萄干,葡萄干面包的主要成分还是面包,人工智能软件主体也是常规的软件工程和产品开发。 ” 问:成为一家 “AI-first” 公司对 Google 意味着什么? Peter Norvig : “ 传统 ” 的 Google 是一个信息检索公司:你提供一个查询,我们快速返回 10 个相关网页结果,然后你负责找到与查询词相关的返回结果。 “ 现代 ” 的 Google , CEO Sundar Pichai 设定了愿景,它不仅基于相关信息建议,还基于通知和助理。通知,意味着当你需要时,我们提供你需要的信息。例如, Google Now 告诉你该去赴约了,或者你目前在一家杂货店,之前你设定了提醒要买牛奶。助理意味着帮助你实施行动 —— 如规划行程、预定房间。你在互联网上可以做的任何事情, Google 都应该可以帮你实现。 对于信息检索, 80% 以上的召回率和准确率是非常不错的 —— 不需要所有建议都完美,因为用户可以忽略坏的建议。对于助理,门槛就高了许多,你不会使用 20% 甚至 2% 的情形下都预定错房间的服务。所以助理必须更加精准,从而要求更智能、更了解情况。这就是我们所说的 “AI-first” 。 Peter Nervig 在 Google 问:你的职业生涯如何起步? Peter Nervig : 我很幸运地进入了一所既有计算机编程又有语言课程的高中(在马萨诸塞州牛顿县)。这激发了我将两者结合起来学习的兴趣。在高中阶段无法实现这个想法,但是到了大学我主修应用数学专业,得以研究这方面(当时,我们学校并没有真正的计算机专业。我开始是主修数学,但很快发现自己并不擅长数学证明,反而在编程方面如鱼得水)。 大学毕业后,我当了两年的程序员,不过仍旧一直在思考这些想法,最后还是申请了研究生回来继续从事科研(我过了四年才厌倦大学生活,而两年就厌倦了工作状态,所以我觉得我对学校的热爱是对工作的两倍)。研究生阶段为我学术生涯打下了基础,而我却迷上了今天所谓的 “ 大数据 ” (当时还没有这种叫法),我意识到在工业界更容易获得所需要的资源,因此放弃了高校里的职位。我感到幸运的是每个阶段都有优秀的合作伙伴和新的挑战。 问:你在 Google 具体做什么? Peter Norvig : 在 Google 最棒的事情之一就是总有新鲜事;你不会陷入例行公事之中。在快节奏的世界中每周都是如此,当我角色改变之后,每年更是如此。我管理的人员从两人变成了两百人,这意味着我有时候能深入到所参与项目的技术细节中,有时候因为管理的团队太大,只能提一些高层次的笼统看法,并且我相信我的团队正在做的事情是正确的。在那些项目里,我扮演的角色更多的是沟通者和媒介 —— 试图解释公司的发展方向,一个项目具体如何展开,将项目团队介绍给合适的合作伙伴、制造商和消费者,让团队制定出如何实现目标的细节。我在 Google 不写代码,但是如果我有一个想法,我可以使用内部工具写代码进行实验,看看这个想法是否值得尝试。我同样会进行代码审查,这样我就可以了解团队生产的代码,而且这也必须有人去做。 还有很多的会议、邮件、文档要处理。与其他我工作过的公司相比, Google 的官僚主义更少,但有时候是不可避免的。我也会花一些时间参加会议、去大学演讲、与客户交流,以及参与 Quora 问答。 问:在加入 Google 之前,你曾担任美国宇航局( NASA )计算科学部门的主要负责人,在美国宇航局的工作与 Google 的工作有何不同?有哪些文化的差异? Peter Norvig : 美国宇航局与 Google 有很多共同之处:它们都有一群优秀敬业并且充满激情的员工,这些人相信它们的工作使命。而且两者都在推动各自技术的上限。因此,他们在特定项目中的文化往往是相似的。 同时也存在一些差异。美国宇航局的 Gene Kranz 曾说过一句名言: “ 失败不是种选择( Failure is not an option )。 ” 美国宇航局经常会有几亿美元的使命任务,任何一个错误都有可能毁灭一切。因此,需要极其小心。 Google 的项目范围往往更接近 Adam Savage 的想法(与 Jeff Dean 相互呼应) “ 失败自古至今就是一种选择( Failure is always an option ) ” 。 Google 相信,单台计算机可能会发生故障,而设计网络系统可以从故障中恢复。在 Google ,有时我们可以在用户看到错误之前进行恢复纠正,而有时当一个错误曝光后,我们可以在简短的时间内纠正它,同时向受到影响的用户致歉,而这在美国宇航局是很少见的。 一方面是因为失败的预期成本存在差异,另一方面是由于空间硬件的成本巨大(参见我在那做的东西),再者就是政府与私人机构的差异,基于这一优势, Google 更容易启动新项目,并在已有的项目中迅速推动新项目的进展。 问:你是如何权衡新功能的开发与旧功能的维护呢? Peter Norvig : 尽你所能将任务做得最好,并且不断改进,这样就会得到提高。 我曾一次次地发现:团队的新员工说 “ 我们为什么不使用 X ? ” ,一位老员工回答说: “ 我们三年前就试过了 X ,结果证明它并不管用 ” 。此时的难题是:你是否接受那位老前辈的回答?或者说,现在的情况已经改变了,是时候重新审视 X 了?也许我们有新的数据,或者新的技术,又或者新员工将采取不同的方法,或者说世界改变了, X 将会比以往工作得更好。我无法告诉你该问题的答案,你必须权衡所有证据,并与其他类似问题进行比较。 程序员提升之道 问:《人工智能:一种现代方法》还会有新的版本吗? Peter Norvig : 是的,我正在为此努力。但至少还需要一年的时间。 问:我是一名研究生,我的人工智能课程使用《人工智能:一种现代方法》作为参考教材,我如何才能为人工智能编程项目做贡献? Peter Norvig : 现在正是时候:我正在为《人工智能:一种现代方法》这本书的下一个版本的配套代码工作,在 https://github.com/aimacode 上,你可以找到 Java 、 Python 和 JavaScript 子项目,我们一直在寻找好的贡献者。除了提供书中所有算法的代码实现,我们还希望提供 tutorial 材料和练习。此外, GitHub 上也还有其他好的人工智能项目,都希望有铁杆贡献者。 问:有没有像可汗学院( Khan Academy )和 Udacity 一样的在线资源,可以让人们在不到 “ 十年 ” 就精通一门学科呢? Peter Norvig : 精通可能需要十年,或者是 10000 个小时,这种时间会因任务、个体以及训练方法的不同而有所差异。但真正的精通并非易事。可汗学院和 Udacity 主要是提供了技术培训,让你不断努力地学习直到你真正地掌握它。在传统的学校教学当中,如果你在考试中获得的成绩是 “C” ,你就不会再去花更多的时间去学习并掌握它,你会继而专注于下一个学科,因为班集里每个人都是这样做的。在线资源不是万能的,精通它需要加倍努力地学习,而学习需要动力,动力则可以通过人与人之间的联系逐步提升,这在网上是很难学到的。因此,在一个领域,走上正轨,我们需要在社交、动机方面做更多的工作,我们需要对个人需求有针对性地做更多的定制培训,同时我们还需要做更多使实践审慎和有效的工作。我认为,在线资源主要的最终结果不是缩短精通的时长,而是增加更多学生实现精通的机会。 问:如果请你再次教授《计算机程序设计》( Udacity )这门课程,会做哪些改变呢? Peter Norvig : 我认为这门课程很好,反馈(不管是数量还是质量)大多都是好的。就个人而言,我希望有更多的实例程序和技术。我想修正之前我们犯下的一些错误(主要是因为课程进展太快,没有太多的时间去测试所有的东西)。我希望系统能够更加互动:让学生获得更多的反馈信息,不仅仅是 “ 你的程序不正确 ” ,同时可以让学生看到下一件要做的事情,让他们知道到目前为止已经做了什么。我认为对于学生而言,正则表达式和语言这部分进展速度过快了;另外,我还想添加更多的材料,让学生加快学习速度,同时给他们更多的机会去实践新想法。 备注:本文经CSDN授权转载,特此说明。
1685 次阅读|0 个评论
[转载]Google研究总监Peter Norvig:人工智能的另一面
王飞跃 2016-6-24 11:27
Google研究总监Peter Norvig:人工智能的另一面 Peter Norvig 是誉满全球的人工智能专家, Google 研究总监( Director of Research ),他同时也是经典书籍《人工智能编程范式: Common Lisp 案例研究》( Paradigms of AI Programming: Case Studies inCommon Lisp )和《人工智能:一种现代方法》( Artificial Intelligence: A Modern Approach )的作者 / 合著者。在本文中,我们将看到 Peter Norvig 对人工智能目前进展和未来发展的思考,对人工智能技术在 Google 应用的解读,以及对最新软件工程师在人工智能时代的成长的观点。 Peter Norvig 眼中的人工智能 问:人工智能领域在哪些方面发生了您未曾预料的演变? Peter Norvig : 在 1980 年我开始从事人工智能研究时人工智能意味着:一位研究生用说明性语言写下事实,然后拨弄这些事实和推理机制,直到从精心挑选的样本上得到不错的结果,然后写一篇关于它的论文。 虽然我接受并遵循这种工作模式,在我获得博士学位的过程中,我发现了这种方法的三个问题: 写下事实太慢了。 我们没有处理异常情况或模糊状态的良好方法。 这个过程不科学 —— 即使在选定的样本上它能工作,但是在其他样本上工作效果会如何呢? 整个领域的演变回答了这三个问题: 我们依靠机器学习,而不是研究生付出的辛苦努力。 我们使用概率推理,而不是布尔逻辑。 我们希望使用科学严格的方式;我们有训练数据和测试数据的概念,而且我们也有比较不同系统处理标准问题所得到的结果。 1950 年,阿兰图灵写道: “ 我们只能看到未来很短的一段距离,但是我们很清楚还有什么需要完成。 ” 自从 1950 年,我们已经得到许多发展并实现了许多目标,但图灵的话仍然成立。 问:对于机器学习研究,工业界与学术界有何不同呢? Peter Norvig : 我认为,在教育机构、商业机构还是政府机构并不是很重要 —— 我曾经在这三种机构都学到很多东西。 我建议你在有着一群出色同事和有趣问题的环境下工作。可以是工业界、学术界、政府或者非营利企业,甚至开源社区。在这些领域里,工业界往往有更多的资源(人、计算能力和数据),但如今有很多公开可用的数据供你使用,一个小团队,一台笔记本电脑,或者一个小而廉价的 GPU 集群,或者在云计算服务上租赁或捐献时间。 问:您对深度学习有什么看法? Peter Norvig : 我清楚地记得 80 年代初的那一天, Geoff Hinton 来到伯克利进行了关于玻尔兹曼机的讲座。对我来说,这是个了不起的视角 —— 他不赞同符号主义人工智能很强大很有用,而我了解到了一种机制,有三件令人兴奋的新(对我而言)事情:根据大脑模型得出的认知合理性;从经验而不是手工编码中学习的模型;还有表示是连续的,而不是布尔值,因此可以避免传统符号专家系统的一些脆弱问题。 事实证明,玻尔兹曼机在那个时代并没有广泛普及,相反, Hinton 、 LeCun 、 Bengio 、 Olshausen 、 Osindero 、 Sutskever 、 Courville 、 Ng 以及其他人设计的架构得到很好的普及。是什么造成了这种不同呢?是一次一层的训练技术吗?是 ReLU 激活函数?是需要更多的数据?还是使用 GPU 集群可以更快地训练?我不敢肯定,我希望持续的分析可以给我们带来更好的了解。但我可以说,在语音识别、计算机视觉识别物体、围棋和其他领域,这一差距是巨大的:使用深度学习可以降低错误率,这两个领域在过去几年都发生了彻底变化:基本上所有的团队都选择了深度学习,因为它管用。 许多问题依然存在。在计算机视觉里,我们好奇深度网络实际上在做什么:我们可以在一个级别上确定线条识别器,在更高层次确定眼睛和鼻子识别器,然后就是脸部识别器,最终就是整个人的识别器。但在其他领域,一直很难了解网络在做什么。是因为我们没有正确的分析和可视化工具吗?还是因为实际上表示不一致? 在有许多数据的时候,深度学习在各种应用中表现不错,但对于一次性或零次学习,需要将一个领域的知识转移并适应到当前领域又如何呢?深度网络形成了什么样的抽象,我们可以如何解释这些抽象并结合它们?网络会被对抗性输入愚弄;我们如何预防这些,它们代表了根本缺陷还是不相干的把戏? 我们如何处理一个领域中的结构?我们有循环网络( Recurrent Networks )来处理时间,递归网络( Recrsive Networks )来处理嵌套结构,但这些是否已经足够,现在讨论还为时过早。 我对深度学习感到兴奋,因为很多长期存在的领域也是如此。而且我有兴趣了解更多,因为还有许多剩余问题,而且这些问题的答案不仅会告诉我们更多关于深度学习的东西,还可以帮助我们大体理解学习、推理和表示。 问:在深度学习最近取得的成就之后,符号主义人工智能是否还有意义? Peter Norvig : 是的。我们围绕着符号主义人工智能开发了许多强大的原理:逻辑预测、约束满足问题、规划问题、自然语言处理,乃至概率预测。因为这些算法的出色表现,我们处理问题的能力比原来提升了几个数量级。放弃这一切是件可耻的事。我认为其中一个有意识的研究方向是回过头看每一种方法,探索非原子式符号被原子式符号取代的这个过程究竟发生了什么,诸如 Word2Vec 产生的 Word Embedding 之类的原理。 下面是一些例子。假设你有这些逻辑 “ 事实 ” : 1. 人会说话; 2. 除人以外的动物不会说话; 3. 卡通人物角色会说话; 4. 鱼会游泳; 5. 鱼是除人以外的动物; 6. Nemo 是一个卡通人物; 7. Nemo 是一条鱼; 8. 那么我们要问了: 9. Nemo 会说话吗? 10. Nemo 会游泳吗? 用逻辑来表述和解释这个场景的时候遇到了两个大问题。首先,这些事实都有例外,但是用逻辑很难穷举这些例外情况,而且当你逻辑出错的时候预测就会出问题了。其次,在相互矛盾的情况下则逻辑无能为力,就像这里的 Nemo 既会说话又不会说话。也许我们可以用 Word Embedding 技术来解决这些问题。我们还需要 Modus Ponens Embedding (分离规则,一种数学演绎推理规则)吗?不学习 “ 如果 A 且 A 暗示 B ,则 B” 这样一种抽象的规则,我们是否可以学习何时应用这种规则是恰当的?我觉得这是一个重要的研究领域。 再说一点:许多所谓的符号主意人工智能技术实际上还是优秀的计算机科学算法。举个例子,搜索算法,无论 A* 或是蚁群优化,或是其它任何东西,都是一种关键的算法,永远都会非常有用。即使是基于深度学习的 AlphaGo ,也包含了搜索模块。 问:我们哪儿做错了?为什么 Common Lisp 不能治愈世界? Peter Norvig : 我认为 Common Lisp 的思想确实能治愈这个世界。如果你回到 1981 年, Lisp 被视作是另类,因为它所具有的下面这些特性还不被 C 语言程序员所知: 1. 垃圾回收机制; 2. 丰富的容器类型及相应的操作; 3. 强大的对象系统,伴随着各种继承和原生函数; 4. 定义测试例子的亚语言( sublanguage )(并不属于官方版本的一部分,但我自己配置了一套); 5. 有交互式的读入 - 运算 - 打印循环; 6. 敏捷的、增量式的开发模式,而不是一步到位的模式; 7. 运行时对象和函数的自省; 8. 能自定义领域特定语言的宏。 如今,除了宏之外的所有这些特性都在主流编程语言里非常常见。所以说它的思想取胜了,而 Common Lisp 的实现却没有 —— 也许是因为 CL 还遗留了不少 1958 年编程语言的陋习;也许只是因为一些人不喜欢用大括号。 至于说宏,我也希望它能流行起来,但当用到宏的时候,你成为了一名语言设计者,而许多开发团队喜欢保持底层语言的稳定性,尤其是那些大团队。我想最好有一套使用宏的实用指南,而不是把它们全部抛弃(或是在 C 语言里严格限制的宏)。 问:在未来 10 年里,有没有哪些情况下软件工程师不需要学习人工智能或机器学习的,还是每个人都需要学习? Peter Norvig : 机器学习将会是(或许已经是)软件工程的一个重要部分,每个人都必须知道它的运用场景。但就像数据库管理员或用户界面设计一样,并不意味着每个工程师都必须成为机器学习专家 —— 和这个领域的专家共事也是可以的。但是你知道的机器学习知识越多,在构建解决方案方面的能力就越好。 我也认为机器学习专家和软件工程师聚在一起进行机器学习系统软件开发最佳实践将会很重要。目前我们有一套软件测试体制,你可以定义单元测试并在其中调用方法,比如 assertTrue 或者 assertEquals 。我们还需要新的测试过程,包括运行试验、分析结果、对比今天和历史结果来查看偏移、决定这种偏移是随机变化还是数据不平稳等。这是一个伟大的领域,软件工程师和机器学习人员一同协作,创建新的、更好的东西。 问:我想从软件工程师转行成为人工智能研究员,应该如何训练自己呢? Peter Norvig : 我认为这不是转行,而是一种技能上的提升。人工智能的关键点在于搭建系统,这正是你手头上的工作。所以你在处理系统复杂性和选择合适的抽象关系方面都有经验,参与过完整的设计、开发和测试流程;这些对于 AI 研究员和软件工程师来说都是基本要求。有句老话这样说,当一项人工智能技术成功之后,它就不再属于人工智能,而是成为了软件工程的一部分。人工智能工作者抱怨上述观点的意思就是他们的工作永远离成功有一步之遥,但你可以认为这表明你只是需要在已知的基础上再添加一些新概念和新技术。 人工智能在 Google 问: Google“ 没有更好的算法,只是多了点数据而已 ” 这种说法是真的吗? Peter Norvig : 我曾引用微软研究院 Michele Banko 和 Eric Brill 发表的一篇关于分析词性辨析算法的论文,他们发现增加训练数据得到的效果提升比更换算法更明显。我说过有些问题确实如此,而另一些问题则不见得。你可以认为这篇论文是 “ 大数据 ” 的功劳,但要注意,在这个领域十亿个单词规模的训练数据集就能看出效果 —— 在笔记本电脑的处理范围内 —— 还不到数据中心的量级。所以,如果你用不了数据中心,不必担心 —— 你拥有的计算资源和数据量几乎完胜任何一个上一代的人,你可以有更多的新发现。 所以没错,大量与任务相契合的高质量数据必然会有帮助。然而真正有挑战的工作在于发明新学习系统的研究和让其真正落实到产品中的工程实现。这个工作正是大多数机器学习成功案例的驱动力。正如 Pat Winston 所说: “ 人工智能就像葡萄干面包里的葡萄干,葡萄干面包的主要成分还是面包,人工智能软件主体也是常规的软件工程和产品开发。 ” 问:成为一家 “AI-first” 公司对 Google 意味着什么? Peter Norvig : “ 传统 ” 的 Google 是一个信息检索公司:你提供一个查询,我们快速返回 10 个相关网页结果,然后你负责找到与查询词相关的返回结果。 “ 现代 ” 的 Google , CEO Sundar Pichai 设定了愿景,它不仅基于相关信息建议,还基于通知和助理。通知,意味着当你需要时,我们提供你需要的信息。例如, Google Now 告诉你该去赴约了,或者你目前在一家杂货店,之前你设定了提醒要买牛奶。助理意味着帮助你实施行动 —— 如规划行程、预定房间。你在互联网上可以做的任何事情, Google 都应该可以帮你实现。 对于信息检索, 80% 以上的召回率和准确率是非常不错的 —— 不需要所有建议都完美,因为用户可以忽略坏的建议。对于助理,门槛就高了许多,你不会使用 20% 甚至 2% 的情形下都预定错房间的服务。所以助理必须更加精准,从而要求更智能、更了解情况。这就是我们所说的 “AI-first” 。 Peter Nervig 在 Google 问:你的职业生涯如何起步? Peter Nervig : 我很幸运地进入了一所既有计算机编程又有语言课程的高中(在马萨诸塞州牛顿县)。这激发了我将两者结合起来学习的兴趣。在高中阶段无法实现这个想法,但是到了大学我主修应用数学专业,得以研究这方面(当时,我们学校并没有真正的计算机专业。我开始是主修数学,但很快发现自己并不擅长数学证明,反而在编程方面如鱼得水)。 大学毕业后,我当了两年的程序员,不过仍旧一直在思考这些想法,最后还是申请了研究生回来继续从事科研(我过了四年才厌倦大学生活,而两年就厌倦了工作状态,所以我觉得我对学校的热爱是对工作的两倍)。研究生阶段为我学术生涯打下了基础,而我却迷上了今天所谓的 “ 大数据 ” (当时还没有这种叫法),我意识到在工业界更容易获得所需要的资源,因此放弃了高校里的职位。我感到幸运的是每个阶段都有优秀的合作伙伴和新的挑战。 问:你在 Google 具体做什么? Peter Norvig : 在 Google 最棒的事情之一就是总有新鲜事;你不会陷入例行公事之中。在快节奏的世界中每周都是如此,当我角色改变之后,每年更是如此。我管理的人员从两人变成了两百人,这意味着我有时候能深入到所参与项目的技术细节中,有时候因为管理的团队太大,只能提一些高层次的笼统看法,并且我相信我的团队正在做的事情是正确的。在那些项目里,我扮演的角色更多的是沟通者和媒介 —— 试图解释公司的发展方向,一个项目具体如何展开,将项目团队介绍给合适的合作伙伴、制造商和消费者,让团队制定出如何实现目标的细节。我在 Google 不写代码,但是如果我有一个想法,我可以使用内部工具写代码进行实验,看看这个想法是否值得尝试。我同样会进行代码审查,这样我就可以了解团队生产的代码,而且这也必须有人去做。 还有很多的会议、邮件、文档要处理。与其他我工作过的公司相比, Google 的官僚主义更少,但有时候是不可避免的。我也会花一些时间参加会议、去大学演讲、与客户交流,以及参与 Quora 问答。 问:在加入 Google 之前,你曾担任美国宇航局( NASA )计算科学部门的主要负责人,在美国宇航局的工作与 Google 的工作有何不同?有哪些文化的差异? Peter Norvig : 美国宇航局与 Google 有很多共同之处:它们都有一群优秀敬业并且充满激情的员工,这些人相信它们的工作使命。而且两者都在推动各自技术的上限。因此,他们在特定项目中的文化往往是相似的。 同时也存在一些差异。美国宇航局的 Gene Kranz 曾说过一句名言: “ 失败不是种选择( Failure is not an option )。 ” 美国宇航局经常会有几亿美元的使命任务,任何一个错误都有可能毁灭一切。因此,需要极其小心。 Google 的项目范围往往更接近 Adam Savage 的想法(与 Jeff Dean 相互呼应) “ 失败自古至今就是一种选择( Failure is always an option ) ” 。 Google 相信,单台计算机可能会发生故障,而设计网络系统可以从故障中恢复。在 Google ,有时我们可以在用户看到错误之前进行恢复纠正,而有时当一个错误曝光后,我们可以在简短的时间内纠正它,同时向受到影响的用户致歉,而这在美国宇航局是很少见的。 一方面是因为失败的预期成本存在差异,另一方面是由于空间硬件的成本巨大(参见我在那做的东西),再者就是政府与私人机构的差异,基于这一优势, Google 更容易启动新项目,并在已有的项目中迅速推动新项目的进展。 问:你是如何权衡新功能的开发与旧功能的维护呢? Peter Norvig : 尽你所能将任务做得最好,并且不断改进,这样就会得到提高。 我曾一次次地发现:团队的新员工说 “ 我们为什么不使用 X ? ” ,一位老员工回答说: “ 我们三年前就试过了 X ,结果证明它并不管用 ” 。此时的难题是:你是否接受那位老前辈的回答?或者说,现在的情况已经改变了,是时候重新审视 X 了?也许我们有新的数据,或者新的技术,又或者新员工将采取不同的方法,或者说世界改变了, X 将会比以往工作得更好。我无法告诉你该问题的答案,你必须权衡所有证据,并与其他类似问题进行比较。 程序员提升之道 问:《人工智能:一种现代方法》还会有新的版本吗? Peter Norvig : 是的,我正在为此努力。但至少还需要一年的时间。 问:我是一名研究生,我的人工智能课程使用《人工智能:一种现代方法》作为参考教材,我如何才能为人工智能编程项目做贡献? Peter Norvig : 现在正是时候:我正在为《人工智能:一种现代方法》这本书的下一个版本的配套代码工作,在 https://github.com/aimacode 上,你可以找到 Java 、 Python 和 JavaScript 子项目,我们一直在寻找好的贡献者。除了提供书中所有算法的代码实现,我们还希望提供 tutorial 材料和练习。此外, GitHub 上也还有其他好的人工智能项目,都希望有铁杆贡献者。 问:有没有像可汗学院( Khan Academy )和 Udacity 一样的在线资源,可以让人们在不到 “ 十年 ” 就精通一门学科呢? Peter Norvig : 精通可能需要十年,或者是 10000 个小时,这种时间会因任务、个体以及训练方法的不同而有所差异。但真正的精通并非易事。可汗学院和 Udacity 主要是提供了技术培训,让你不断努力地学习直到你真正地掌握它。在传统的学校教学当中,如果你在考试中获得的成绩是 “C” ,你就不会再去花更多的时间去学习并掌握它,你会继而专注于下一个学科,因为班集里每个人都是这样做的。在线资源不是万能的,精通它需要加倍努力地学习,而学习需要动力,动力则可以通过人与人之间的联系逐步提升,这在网上是很难学到的。因此,在一个领域,走上正轨,我们需要在社交、动机方面做更多的工作,我们需要对个人需求有针对性地做更多的定制培训,同时我们还需要做更多使实践审慎和有效的工作。我认为,在线资源主要的最终结果不是缩短精通的时长,而是增加更多学生实现精通的机会。 问:如果请你再次教授《计算机程序设计》( Udacity )这门课程,会做哪些改变呢? Peter Norvig : 我认为这门课程很好,反馈(不管是数量还是质量)大多都是好的。就个人而言,我希望有更多的实例程序和技术。我想修正之前我们犯下的一些错误(主要是因为课程进展太快,没有太多的时间去测试所有的东西)。我希望系统能够更加互动:让学生获得更多的反馈信息,不仅仅是 “ 你的程序不正确 ” ,同时可以让学生看到下一件要做的事情,让他们知道到目前为止已经做了什么。我认为对于学生而言,正则表达式和语言这部分进展速度过快了;另外,我还想添加更多的材料,让学生加快学习速度,同时给他们更多的机会去实践新想法。 备注:本文经CSDN授权转载,特此说明。
个人分类: 行业观察|4557 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-24 21:28

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部