Final project, Machine Learning Having it Deep and Structured, NTU
- Rank 1/25 in peer review, original score: 16.2/17
- 2nd presentation pride (voted by audience)
Recommendation system using collaborative deep learningRitesh Sawant
Collaborative filtering (CF) is a successful approach commonly used by many recommender systems. Conventional
CF-based methods use the ratings given to items by users
as the sole source of information for learning to make recommendation. However, the ratings are often very sparse in
many applications, causing CF-based methods to degrade
significantly in their recommendation performance. To address this sparsity problem, auxiliary information such as
item content information may be utilized. Collaborative
topic regression (CTR) is an appealing recent method taking
this approach which tightly couples the two components that
learn from two different sources of information. Nevertheless, the latent representation learned by CTR may not be
very effective when the auxiliary information is very sparse.
To address this problem, we generalize recent advances in
deep learning from i.i.d. input to non-i.i.d. (CF-based) input and propose in this paper a hierarchical Bayesian model
called collaborative deep learning (CDL), which jointly performs deep representation learning for the content information and collaborative filtering for the ratings (feedback)
matrix. Extensive experiments on three real-world datasets
from different domains show that CDL can significantly advance the state of the art.
Final project, Machine Learning Having it Deep and Structured, NTU
- Rank 1/25 in peer review, original score: 16.2/17
- 2nd presentation pride (voted by audience)
Recommendation system using collaborative deep learningRitesh Sawant
Collaborative filtering (CF) is a successful approach commonly used by many recommender systems. Conventional
CF-based methods use the ratings given to items by users
as the sole source of information for learning to make recommendation. However, the ratings are often very sparse in
many applications, causing CF-based methods to degrade
significantly in their recommendation performance. To address this sparsity problem, auxiliary information such as
item content information may be utilized. Collaborative
topic regression (CTR) is an appealing recent method taking
this approach which tightly couples the two components that
learn from two different sources of information. Nevertheless, the latent representation learned by CTR may not be
very effective when the auxiliary information is very sparse.
To address this problem, we generalize recent advances in
deep learning from i.i.d. input to non-i.i.d. (CF-based) input and propose in this paper a hierarchical Bayesian model
called collaborative deep learning (CDL), which jointly performs deep representation learning for the content information and collaborative filtering for the ratings (feedback)
matrix. Extensive experiments on three real-world datasets
from different domains show that CDL can significantly advance the state of the art.
Part 2 of the Deep Learning Fundamentals Series, this session discusses Tuning Training (including hyperparameters, overfitting/underfitting), Training Algorithms (including different learning rates, backpropagation), Optimization (including stochastic gradient descent, momentum, Nesterov Accelerated Gradient, RMSprop, Adaptive algorithms - Adam, Adadelta, etc.), and a primer on Convolutional Neural Networks. The demos included in these slides are running on Keras with TensorFlow backend on Databricks.
Deep Learning in Recommender Systems - RecSys Summer School 2017Balázs Hidasi
This is the presentation accompanying my tutorial about deep learning methods in the recommender systems domain. The tutorial consists of a brief general overview of deep learning and the introduction of the four most prominent research direction of DL in recsys as of 2017. Presented during RecSys Summer School 2017 in Bolzano, Italy.
This presentation focuses on Deep Learning (DL) concepts, such as neural networks, backprop, activation functions, and Convolutional Neural Networks, followed by a TypeScript-based code sample that replicates the Tensorflow playground. Basic knowledge of matrices is helpful for this session.
H2O Distributed Deep Learning by Arno Candel 071614Sri Ambati
Deep Learning R Vignette Documentation: https://github.com/0xdata/h2o/tree/master/docs/deeplearning/
Deep Learning has been dominating recent machine learning competitions with better predictions. Unlike the neural networks of the past, modern Deep Learning methods have cracked the code for training stability and generalization. Deep Learning is not only the leader in image and speech recognition tasks, but is also emerging as the algorithm of choice in traditional business analytics.
This talk introduces Deep Learning and implementation concepts in the open-source H2O in-memory prediction engine. Designed for the solution of enterprise-scale problems on distributed compute clusters, it offers advanced features such as adaptive learning rate, dropout regularization and optimization for class imbalance. World record performance on the classic MNIST dataset, best-in-class accuracy for eBay text classification and others showcase the power of this game changing technology. A whole new ecosystem of Intelligent Applications is emerging with Deep Learning at its core.
About the Speaker: Arno Candel
Prior to joining 0xdata as Physicist & Hacker, Arno was a founding Senior MTS at Skytree where he designed and implemented high-performance machine learning algorithms. He has over a decade of experience in HPC with C++/MPI and had access to the world's largest supercomputers as a Staff Scientist at SLAC National Accelerator Laboratory where he participated in US DOE scientific computing initiatives. While at SLAC, he authored the first curvilinear finite-element simulation code for space-charge dominated relativistic free electrons and scaled it to thousands of compute nodes.
He also led a collaboration with CERN to model the electromagnetic performance of CLIC, a ginormous e+e- collider and potential successor of LHC. Arno has authored dozens of scientific papers and was a sought-after academic conference speaker. He holds a PhD and Masters summa cum laude in Physics from ETH Zurich.
- Powered by the open source machine learning software H2O.ai. Contributors welcome at: https://github.com/h2oai
- To view videos on H2O open source machine learning software, go to: https://www.youtube.com/user/0xdata
Anomaly detection using deep one class classifier홍배 김
- Anomaly detection의 다양한 방법을 소개하고
- Support Vector Data Description (SVDD)를 이용하여
cluster의 모델링을 쉽게 하도록 cluster의 형상을 단순화하고
boundary근방의 애매한 point를 처리하는 방법 소개
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
Deep Learning: Introduction & Chapter 5 Machine Learning BasicsJason Tsai
Given lecture for Deep Learning 101 study group with Frank Wu on Dec. 9th, 2016.
Reference: https://www.deeplearningbook.org/
Initiated by Taiwan AI Group (https://www.facebook.com/groups/Taiwan.AI.Group/)
Irina Rish, Researcher, IBM Watson, at MLconf NYC 2017MLconf
Irina Rish is a researcher at the AI Foundations department of the IBM T.J. Watson Research Center. She received MS in Applied Mathematics from Moscow Gubkin Institute, Russia, and PhD in Computer Science from the University of California, Irvine. Her areas of expertise include artificial intelligence and machine learning, with a particular focus on probabilistic graphical models, sparsity and compressed sensing, active learning, and their applications to various domains, ranging from diagnosis and performance management of distributed computer systems (“autonomic computing”) to predictive modeling and statistical biomarker discovery in neuroimaging and other biological data. Irina has published over 60 research papers, several book chapters, two edited books, and a monograph on Sparse Modeling, taught several tutorials and organized multiple workshops at machine-learning conferences, including NIPS, ICML and ECML. She holds 24 patents and several IBM awards. Irina currently serves on the editorial board of the Artificial Intelligence Journal (AIJ). As an adjunct professor at the EE Department of Columbia University, she taught several advanced graduate courses on statistical learning and sparse signal modeling.
Abstract Summary:
Learning About the Brain and Brain-Inspired Learning:
Quantifying mental states and identifying statistical biomarkers of mental disorders from neuroimaging data is an exciting and rapidly growing research area at the intersection of neuroscience and machine learning, with the particular focus on interpretability and reproducibility of learned models. We will discuss promises and limitations of machine-learning methods in such applications, focusing on recent applications of deep learning methods such as recurrent convnets to the analysis of “brain movies” (EEG) data. On the other hand, besides the above “AI to Brain” direction, we will also discuss the “Brain to AI”, namely, borrowing ideas from neuroscience to improve machine learning, with specific focus on adult neurogenesis and online model adaptation in representation learning.
With the explosive growth of online information, recommender system has been an effective tool to overcome information overload and promote sales. In recent years, deep learning's revolutionary advances in speech recognition, image analysis and natural language processing have gained significant attention. Meanwhile, recent studies also demonstrate its efficacy in coping with information retrieval and recommendation tasks. Applying deep learning techniques into recommender system has been gaining momentum due to its state-of-the-art performance. In this talk, I will present recent development of deep learning based recommender models and highlight some future challenges and open issues of this research field.
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
Sara Hooker & Sean McPherson, Delta Analytics, at MLconf Seattle 2017MLconf
Abstract summary
Data Science for Good: Stopping Illegal Deforestation Using Deep Learning:
Interested in using your data skills to give back? Delta Analytics is a Bay Area non-profit that provides free data science consulting to grant recipients all over the world. Rainforest Connection, a Delta grant recipient, worked with Delta fellows to detect illegal deforestation by applying deep learning to audio streamed from rainforests in Peru, Ecuador and Brazil. We will share insights from our work with Rainforest Connection, discuss our fellowship and partnership process, and suggest some best practices for skill based volunteering.
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
Part 2 of the Deep Learning Fundamentals Series, this session discusses Tuning Training (including hyperparameters, overfitting/underfitting), Training Algorithms (including different learning rates, backpropagation), Optimization (including stochastic gradient descent, momentum, Nesterov Accelerated Gradient, RMSprop, Adaptive algorithms - Adam, Adadelta, etc.), and a primer on Convolutional Neural Networks. The demos included in these slides are running on Keras with TensorFlow backend on Databricks.
Deep Learning in Recommender Systems - RecSys Summer School 2017Balázs Hidasi
This is the presentation accompanying my tutorial about deep learning methods in the recommender systems domain. The tutorial consists of a brief general overview of deep learning and the introduction of the four most prominent research direction of DL in recsys as of 2017. Presented during RecSys Summer School 2017 in Bolzano, Italy.
This presentation focuses on Deep Learning (DL) concepts, such as neural networks, backprop, activation functions, and Convolutional Neural Networks, followed by a TypeScript-based code sample that replicates the Tensorflow playground. Basic knowledge of matrices is helpful for this session.
H2O Distributed Deep Learning by Arno Candel 071614Sri Ambati
Deep Learning R Vignette Documentation: https://github.com/0xdata/h2o/tree/master/docs/deeplearning/
Deep Learning has been dominating recent machine learning competitions with better predictions. Unlike the neural networks of the past, modern Deep Learning methods have cracked the code for training stability and generalization. Deep Learning is not only the leader in image and speech recognition tasks, but is also emerging as the algorithm of choice in traditional business analytics.
This talk introduces Deep Learning and implementation concepts in the open-source H2O in-memory prediction engine. Designed for the solution of enterprise-scale problems on distributed compute clusters, it offers advanced features such as adaptive learning rate, dropout regularization and optimization for class imbalance. World record performance on the classic MNIST dataset, best-in-class accuracy for eBay text classification and others showcase the power of this game changing technology. A whole new ecosystem of Intelligent Applications is emerging with Deep Learning at its core.
About the Speaker: Arno Candel
Prior to joining 0xdata as Physicist & Hacker, Arno was a founding Senior MTS at Skytree where he designed and implemented high-performance machine learning algorithms. He has over a decade of experience in HPC with C++/MPI and had access to the world's largest supercomputers as a Staff Scientist at SLAC National Accelerator Laboratory where he participated in US DOE scientific computing initiatives. While at SLAC, he authored the first curvilinear finite-element simulation code for space-charge dominated relativistic free electrons and scaled it to thousands of compute nodes.
He also led a collaboration with CERN to model the electromagnetic performance of CLIC, a ginormous e+e- collider and potential successor of LHC. Arno has authored dozens of scientific papers and was a sought-after academic conference speaker. He holds a PhD and Masters summa cum laude in Physics from ETH Zurich.
- Powered by the open source machine learning software H2O.ai. Contributors welcome at: https://github.com/h2oai
- To view videos on H2O open source machine learning software, go to: https://www.youtube.com/user/0xdata
Anomaly detection using deep one class classifier홍배 김
- Anomaly detection의 다양한 방법을 소개하고
- Support Vector Data Description (SVDD)를 이용하여
cluster의 모델링을 쉽게 하도록 cluster의 형상을 단순화하고
boundary근방의 애매한 point를 처리하는 방법 소개
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
Deep Learning: Introduction & Chapter 5 Machine Learning BasicsJason Tsai
Given lecture for Deep Learning 101 study group with Frank Wu on Dec. 9th, 2016.
Reference: https://www.deeplearningbook.org/
Initiated by Taiwan AI Group (https://www.facebook.com/groups/Taiwan.AI.Group/)
Irina Rish, Researcher, IBM Watson, at MLconf NYC 2017MLconf
Irina Rish is a researcher at the AI Foundations department of the IBM T.J. Watson Research Center. She received MS in Applied Mathematics from Moscow Gubkin Institute, Russia, and PhD in Computer Science from the University of California, Irvine. Her areas of expertise include artificial intelligence and machine learning, with a particular focus on probabilistic graphical models, sparsity and compressed sensing, active learning, and their applications to various domains, ranging from diagnosis and performance management of distributed computer systems (“autonomic computing”) to predictive modeling and statistical biomarker discovery in neuroimaging and other biological data. Irina has published over 60 research papers, several book chapters, two edited books, and a monograph on Sparse Modeling, taught several tutorials and organized multiple workshops at machine-learning conferences, including NIPS, ICML and ECML. She holds 24 patents and several IBM awards. Irina currently serves on the editorial board of the Artificial Intelligence Journal (AIJ). As an adjunct professor at the EE Department of Columbia University, she taught several advanced graduate courses on statistical learning and sparse signal modeling.
Abstract Summary:
Learning About the Brain and Brain-Inspired Learning:
Quantifying mental states and identifying statistical biomarkers of mental disorders from neuroimaging data is an exciting and rapidly growing research area at the intersection of neuroscience and machine learning, with the particular focus on interpretability and reproducibility of learned models. We will discuss promises and limitations of machine-learning methods in such applications, focusing on recent applications of deep learning methods such as recurrent convnets to the analysis of “brain movies” (EEG) data. On the other hand, besides the above “AI to Brain” direction, we will also discuss the “Brain to AI”, namely, borrowing ideas from neuroscience to improve machine learning, with specific focus on adult neurogenesis and online model adaptation in representation learning.
With the explosive growth of online information, recommender system has been an effective tool to overcome information overload and promote sales. In recent years, deep learning's revolutionary advances in speech recognition, image analysis and natural language processing have gained significant attention. Meanwhile, recent studies also demonstrate its efficacy in coping with information retrieval and recommendation tasks. Applying deep learning techniques into recommender system has been gaining momentum due to its state-of-the-art performance. In this talk, I will present recent development of deep learning based recommender models and highlight some future challenges and open issues of this research field.
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
Sara Hooker & Sean McPherson, Delta Analytics, at MLconf Seattle 2017MLconf
Abstract summary
Data Science for Good: Stopping Illegal Deforestation Using Deep Learning:
Interested in using your data skills to give back? Delta Analytics is a Bay Area non-profit that provides free data science consulting to grant recipients all over the world. Rainforest Connection, a Delta grant recipient, worked with Delta fellows to detect illegal deforestation by applying deep learning to audio streamed from rainforests in Peru, Ecuador and Brazil. We will share insights from our work with Rainforest Connection, discuss our fellowship and partnership process, and suggest some best practices for skill based volunteering.
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
Slides by Louis Monier (Altavista Co-Founder & CTO) for Deep Learning keynote #1 at Holberton School. The keynote was followed by a workshop prepared by Gregory Renard. If you want to assist to similar keynote for free, checkout http://www.meetup.com/Holberton-School/
This is inspired from Tom Mitchell's book on Machine Learning. You can achieve a bit exact implementation of the back propagation algorithm if you follow the code in this.
We present basic concepts of machine learning such as: supervised and unsupervised learning, types of tasks, how some algorithms work, neural networks, deep learning concepts, how to apply it in your work.
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
A fast-paced introduction to Deep Learning concepts, such as activation functions, cost functions, backpropagation, and then a quick dive into CNNs. Basic knowledge of vectors, matrices, and elementary calculus (derivatives), are helpful in order to derive the maximum benefit from this session.
Next we'll see a simple neural network using Keras, followed by an introduction to TensorFlow and TensorBoard. (Bonus points if you know Zorn's Lemma, the Well-Ordering Theorem, and the Axiom of Choice.)
Similar to Hands-on Tutorial of Deep Learning (20)
Opendatabay - Open Data Marketplace.pptxOpendatabay
Opendatabay.com unlocks the power of data for everyone. Open Data Marketplace fosters a collaborative hub for data enthusiasts to explore, share, and contribute to a vast collection of datasets.
First ever open hub for data enthusiasts to collaborate and innovate. A platform to explore, share, and contribute to a vast collection of datasets. Through robust quality control and innovative technologies like blockchain verification, opendatabay ensures the authenticity and reliability of datasets, empowering users to make data-driven decisions with confidence. Leverage cutting-edge AI technologies to enhance the data exploration, analysis, and discovery experience.
From intelligent search and recommendations to automated data productisation and quotation, Opendatabay AI-driven features streamline the data workflow. Finding the data you need shouldn't be a complex. Opendatabay simplifies the data acquisition process with an intuitive interface and robust search tools. Effortlessly explore, discover, and access the data you need, allowing you to focus on extracting valuable insights. Opendatabay breaks new ground with a dedicated, AI-generated, synthetic datasets.
Leverage these privacy-preserving datasets for training and testing AI models without compromising sensitive information. Opendatabay prioritizes transparency by providing detailed metadata, provenance information, and usage guidelines for each dataset, ensuring users have a comprehensive understanding of the data they're working with. By leveraging a powerful combination of distributed ledger technology and rigorous third-party audits Opendatabay ensures the authenticity and reliability of every dataset. Security is at the core of Opendatabay. Marketplace implements stringent security measures, including encryption, access controls, and regular vulnerability assessments, to safeguard your data and protect your privacy.
Explore our comprehensive data analysis project presentation on predicting product ad campaign performance. Learn how data-driven insights can optimize your marketing strategies and enhance campaign effectiveness. Perfect for professionals and students looking to understand the power of data analysis in advertising. for more details visit: https://bostoninstituteofanalytics.org/data-science-and-artificial-intelligence/
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...Subhajit Sahu
Abstract — Levelwise PageRank is an alternative method of PageRank computation which decomposes the input graph into a directed acyclic block-graph of strongly connected components, and processes them in topological order, one level at a time. This enables calculation for ranks in a distributed fashion without per-iteration communication, unlike the standard method where all vertices are processed in each iteration. It however comes with a precondition of the absence of dead ends in the input graph. Here, the native non-distributed performance of Levelwise PageRank was compared against Monolithic PageRank on a CPU as well as a GPU. To ensure a fair comparison, Monolithic PageRank was also performed on a graph where vertices were split by components. Results indicate that Levelwise PageRank is about as fast as Monolithic PageRank on the CPU, but quite a bit slower on the GPU. Slowdown on the GPU is likely caused by a large submission of small workloads, and expected to be non-issue when the computation is performed on massive graphs.
As Europe's leading economic powerhouse and the fourth-largest hashtag#economy globally, Germany stands at the forefront of innovation and industrial might. Renowned for its precision engineering and high-tech sectors, Germany's economic structure is heavily supported by a robust service industry, accounting for approximately 68% of its GDP. This economic clout and strategic geopolitical stance position Germany as a focal point in the global cyber threat landscape.
In the face of escalating global tensions, particularly those emanating from geopolitical disputes with nations like hashtag#Russia and hashtag#China, hashtag#Germany has witnessed a significant uptick in targeted cyber operations. Our analysis indicates a marked increase in hashtag#cyberattack sophistication aimed at critical infrastructure and key industrial sectors. These attacks range from ransomware campaigns to hashtag#AdvancedPersistentThreats (hashtag#APTs), threatening national security and business integrity.
🔑 Key findings include:
🔍 Increased frequency and complexity of cyber threats.
🔍 Escalation of state-sponsored and criminally motivated cyber operations.
🔍 Active dark web exchanges of malicious tools and tactics.
Our comprehensive report delves into these challenges, using a blend of open-source and proprietary data collection techniques. By monitoring activity on critical networks and analyzing attack patterns, our team provides a detailed overview of the threats facing German entities.
This report aims to equip stakeholders across public and private sectors with the knowledge to enhance their defensive strategies, reduce exposure to cyber risks, and reinforce Germany's resilience against cyber threats.
Show drafts
volume_up
Empowering the Data Analytics Ecosystem: A Laser Focus on Value
The data analytics ecosystem thrives when every component functions at its peak, unlocking the true potential of data. Here's a laser focus on key areas for an empowered ecosystem:
1. Democratize Access, Not Data:
Granular Access Controls: Provide users with self-service tools tailored to their specific needs, preventing data overload and misuse.
Data Catalogs: Implement robust data catalogs for easy discovery and understanding of available data sources.
2. Foster Collaboration with Clear Roles:
Data Mesh Architecture: Break down data silos by creating a distributed data ownership model with clear ownership and responsibilities.
Collaborative Workspaces: Utilize interactive platforms where data scientists, analysts, and domain experts can work seamlessly together.
3. Leverage Advanced Analytics Strategically:
AI-powered Automation: Automate repetitive tasks like data cleaning and feature engineering, freeing up data talent for higher-level analysis.
Right-Tool Selection: Strategically choose the most effective advanced analytics techniques (e.g., AI, ML) based on specific business problems.
4. Prioritize Data Quality with Automation:
Automated Data Validation: Implement automated data quality checks to identify and rectify errors at the source, minimizing downstream issues.
Data Lineage Tracking: Track the flow of data throughout the ecosystem, ensuring transparency and facilitating root cause analysis for errors.
5. Cultivate a Data-Driven Mindset:
Metrics-Driven Performance Management: Align KPIs and performance metrics with data-driven insights to ensure actionable decision making.
Data Storytelling Workshops: Equip stakeholders with the skills to translate complex data findings into compelling narratives that drive action.
Benefits of a Precise Ecosystem:
Sharpened Focus: Precise access and clear roles ensure everyone works with the most relevant data, maximizing efficiency.
Actionable Insights: Strategic analytics and automated quality checks lead to more reliable and actionable data insights.
Continuous Improvement: Data-driven performance management fosters a culture of learning and continuous improvement.
Sustainable Growth: Empowered by data, organizations can make informed decisions to drive sustainable growth and innovation.
By focusing on these precise actions, organizations can create an empowered data analytics ecosystem that delivers real value by driving data-driven decisions and maximizing the return on their data investment.
4. Outline
What is Machine Learning?
What is Deep Learning?
Hands-on Tutorial of Deep Learning
Tips for Training DL Models
Variants - Convolutional Neural Network
4
6. 一句話說明 Machine Learning
6
Field of study that gives computers the ability
to learn without being explicitly programmed.
- Arthur Lee Samuel, 1959
『
』
7. Machine Learning vs Artificial Intelligence
AI is the simulation of human intelligence processes
Outcome-based: 從結果來看,是否有 human intelligence
一個擁有非常詳盡的 rule-based 系統也可以是 AI
Machine learning 是達成 AI 的一種方法
從資料當中學習出 rules
找到一個夠好的 function
能解決特定的問題
7
Artificial
Intelligence
Machine
Learning
8. Goal of Machine Learning
For a specific task, find a best function to complete
Task: 每集寶可夢結束的“猜猜我是誰”
8
f*( ) =
f*( ) =
Ans: 妙蛙種子
Ans: 超夢
10. 1. Define a Set of Functions
10
Define a set
of functions
Evaluate
and
Search
Pick the best
function
A set of functions, f(‧)
{f(ө1),…,f(ө*),…,f(өn)}
在北投公園的寶可夢訓練師
11. 2. Evaluate and Search
11
Define a set
of functions
Evaluate
and
Search
Pick the best
function
f1( ) =
f1( ) =
根據結果,修正 ө :
避免找身上有皮卡丘的人 (遠離 ө1 )
f1=f(ө1)
12. 3. Pick The Best Function
12
Define a set
of functions
Evaluate
and
Search
Pick the best
function
找到寶可夢訓練大師
23. A Neuron
23
Input
x1
xn
……
z = w1x1+w2x2+……+wnxn+b
̂y
wn
w1
Output
Weight
+
z
σ: Activation
function
b
Bias
σ(z)
̂y = σ(z)
…
Neuron
24. Neuron 的運作
Example
24
σ(z)=z linear function
z = w1x1+w2x2+……+wnxn+b
A neuron
5
2
z = w1x1+w2x2+……+wnxn+b
3
-1
Output
+
z
σ(z)
3
̂y
̂y = z = (-1)*5+3*2+3 = 4 Ө: weights, bias
25. Fully Connected Neural Network
很多個 neurons 連接成 network
Universality theorem: a network with enough number
of neurons can present any function
25
X1
Xn
w1,n
w1,1
w2,n
w2,1
26. Fully Connected Neural Network
A simple network with linear activation functions
5
2
-0.5
+0.2
-0.1
+0.5
-1.5
+0.8
27. Fully Connected Neural Network
5
2
+0.4
+0.1
+0.5
+0.9
0.12
0.55
-0.5
+0.2
-0.1
+0.5
-1.5
+0.8
A simple network with linear activation functions
28. 給定 Network Weights
28
f( ) =
5
2
-0.5
+0.5
-0.1
+0.2
+0.4
+0.1
+0.5
+0.9 0.12
0.55
Given & ,
f(x,Ө)
Ө: weights, bias
A Neural Network = A Function
29. Recall: Deep Learning Framework
31
Define a set
of functions
Evaluate
and
Search
Pick the best
function
特定的網絡架構
A set of functions, f(‧)
{f(ө1),…,f(ө*),…,f(өn)}
f(ө94)
f(ө87)
f(ө945)…
不斷修正 f 的參數
找到最適合的參數
f(ө*)
30. output values 跟 actual values 越一致越好
A loss function is to quantify the gap between
network outputs and actual values
Loss function is a function of Ө
如何評估模型好不好?
32
X1
X2
̂y1
̂y2
y1
y2
L
f(x,Ө)
(Ө)
31. 目標:最佳化 Total Loss
Find the best function that minimize total loss
Find the best network weights, ө*
𝜃∗ = argm𝑖𝑛
𝜃
𝐿(𝜃)
最重要的問題: 該如何找到 ө* 呢?
踏破鐵鞋無覓處 (enumerate all possible values)
假設 weights 限制只能 0.0, 0.1, …, 0.9,有 500 個 weights
全部組合就有 10500 組
評估 1 秒可以做 106 組,要約 10486 年
宇宙大爆炸到現在才 1010 年
Impossible to enumerate
33
37. Summary – Gradient Descent
用來最佳化一個連續的目標函數
朝著進步的方向前進
Gradient descent
Gradient 受 loss function 影響
Gradient 受 activation function 影響
受 learning rate 影響
39
38. Gradient Descent 的缺點
一個 epoch 更新一次,收斂速度很慢
一個 epoch 等於看過所有 training data 一次
Problem 1
有辦法加速嗎?
A solution: stochastic gradient descent (SGD)
Problem 2
Gradient based method 不能保證找到全域最佳解
可以利用 momentum 降低困在 local minimum 的機率
40
39. Gradient Descent 的缺點
一個 epoch 更新一次,收斂速度很慢
一個 epoch 等於看過所有 training data 一次
Problem 1
有辦法加速嗎?
A solution: stochastic gradient descent (SGD)
Problem 2
Gradient based method 不能保證找到全域最佳解
可以利用 momentum 降低困在 local minimum 的機率
41
40. Stochastic Gradient Descent
隨機抽一筆 training sample,依照其 loss 更新一次
另一個問題,一筆一筆更新也很慢
Mini-batch: 每一個 mini-batch 更新一次
Benefits of mini-batch
相較於 SGD: faster to complete one epoch
相較於 GD: faster to converge (to optimum)
42
Update once Update once Update once
Loss Loss Loss
56. 處理順序資料
Ordinal variables (順序資料)
For example: {Low, Medium, High}
Encoding in order
{Low, Medium, High} {1,2,3}
Create a new feature using mean or median
58
UID Age
P1 0-17
P2 0-17
P3 55+
P4 26-35
UID Age
P1 15
P2 15
P3 70
P4 30
82. Alternative: Functional API
The way to go for defining a complex model
For example: multiple outputs, multiple input source
Why “Functional API” ?
All layers and models are callable (like function call)
Example
84
from keras.layers import Input, Dense
input = Input(shape=(200,))
output = Dense(10)(input)
83. 85
# Sequential (依序的)深度學習模型
model = Sequential()
model.add(Dense(128, input_dim=200))
model.add(Activation('sigmoid'))
model.add(Dense(256))
model.add(Activation('sigmoid'))
model.add(Dense(5))
model.add(Activation('softmax'))
model.summary()
# Functional API
from keras.layers import Input, Dense
from keras.models import Model
input = Input(shape=(200,))
x = Dense(128,activation='sigmoid')(input)
x = Dense(256,activation='sigmoid')(x)
output = Dense(5,activation='softmax')(x)
# 定義 Model (function-like)
model = Model(inputs=[input], outputs=[output])
84. Good Use Case for Functional API (1)
Model is callable as well, so it is easy to re-use the
trained model
Re-use the architecture and weights as well
86
# If model and input is defined already
# re-use the same architecture of the above model
y1 = model(input)
85. Good Use Case for Functional API (2)
Easy to manipulate various input sources
87
x2
Dense(100) Dense(200)y1x1 outputnew_x2
x1 = input(shape=(10,))
y1 = Dense(100)(x1)
x2 = input(shape=(20,))
new_x2 = keras.layers.concatenate([y1,x2])
output = Dense(200)(new_x2)
Model = Model(inputs=[x1,x2],outputs=[output])
86. Today
Our exercise uses “Sequential” model
Because it is more straight-forward to understand the
details of stacking layers
88
90. Tips for Deep Learning
92
No
Activation Function
YesGood result on
training dataset?
Loss Function
Good result on
testing dataset?
Optimizer
Learning Rate
91. Tips for Deep Learning
93
No
Activation Function
YesGood result on
training dataset?
Loss Function
Good result on
testing dataset?
Optimizer
Learning Rate
𝜕𝐿
𝜕𝜃
=
𝜕𝐿
𝜕 𝑦
𝜕 𝑦
𝜕𝑧
𝜕𝑧
𝜕𝜃
受 loss function 影響
92. Using MSE
在指定 loss function 時
94
# 指定 loss function 和 optimizier
model.compile(loss='categorical_crossentropy',
optimizer=sgd)
# 指定 loss function 和 optimizier
model.compile(loss='mean_squared_error',
optimizer=sgd)
96. How to Select Loss function
Classification 常用 cross-entropy
搭配 softmax 當作 output layer 的 activation function
Regression 常用 mean absolute/squared error
對特定問題定義 loss function
Unbalanced dataset, class 0 : class 1 = 99 : 1
Self-defined loss function
98
Loss Class 0 Class 1
Class 0 0 99
Class 1 1 0
97. Current Best Model Configuration
99
Component Selection
Loss function categorical_crossentropy
Activation function sigmoid + softmax
Optimizer SGD
98. Tips for Deep Learning
100
No
Activation Function
YesGood result on
training data?
Loss Function
Good result on
testing data?
Optimizer
Learning Rate
99. 練習 02_learningRateSelection.py
(5-8 minutes)
101
# 指定 optimizier
from keras.optimizers import SGD, Adam, RMSprop, Adagrad
sgd = SGD(lr=0.01,momentum=0.0,decay=0.0,nesterov=False)
試試看改變 learning rate,挑選出最好的 learning rate。
建議一次降一個數量級,如: 0.1 vs 0.01 vs 0.001
101. How to Set Learning Rate
大多要試試看才知道,通常不會大於 0.1
一次調一個數量級
0.1 0.01 0.001
0.01 0.012 0.015 0.018 …
幸運數字!
103
102. Tips for Deep Learning
104
No
Activation Function
YesGood result on
training data?
Loss Function
Good result on
testing data?
Optimizer
Learning Rate 𝜕𝐿
𝜕𝜃
=
𝜕𝐿
𝜕 𝑦
𝜕 𝑦
𝜕𝑧
𝜕𝑧
𝜕𝜃
受 activation function 影響
108. Leaky ReLU
Allow a small gradient while the input to activation
function smaller than 0
111
α=0.1
f(x)= x if x > 0,
αx otherwise.
df/dx=
1 if x > 0,
α otherwise.
109. Leaky ReLU in Keras
更多其他的 activation functions
https://keras.io/layers/advanced-activations/
112
# For example
From keras.layer.advanced_activation import LeakyReLU
lrelu = LeakyReLU(alpha = 0.02)
model.add(Dense(128, input_dim = 200))
# 指定 activation function
model.add(lrelu)
113. How to Select Activation Functions
Hidden layers
通常會用 ReLU
Sigmoid 有 vanishing gradient 的問題較不推薦
Output layer
Regression: linear
Classification: softmax
116
114. Current Best Model Configuration
117
Component Selection
Loss function categorical_crossentropy
Activation function relu + softmax
Optimizer SGD
115. Tips for Deep Learning
118
No
YesGood result on
training dataset?
Good result on
testing dataset?
Activation Function
Loss Function
Optimizer
Learning Rate
116. Optimizers in Keras
SGD – Stochastic Gradient Descent
Adagrad – Adaptive Learning Rate
RMSprop – Similar with Adagrad
Adam – Similar with RMSprop + Momentum
Nadam – Adam + Nesterov Momentum
119
117. Optimizer – SGD
Stochastic gradient descent
支援 momentum, learning rate decay, Nesterov momentum
Momentum 的影響
無 momentum: update = -lr*gradient
有 momentum: update = -lr*gradient + m*last_update
Learning rate decay after update once
屬於 1/t decay lr = lr / (1 + decay*t)
t: number of done updates
120
130. 一般的起手式: Adam
Adaptive learning rate for every weights
Momentum included
Keras 推薦 RNN 使用 RMSProp
在訓練 RNN 需要注意 explosive gradient 的問題
clip gradient 的暴力美學
RMSProp 與 Adam 的戰爭仍在延燒
133
How to Select Optimizers
131. Tips for Deep Learning
134
No
YesGood result on
training data?
Good result on
testing data?
Activation Function
Loss Function
Optimizer
Learning Rate
132. Current Best Model Configuration
135
Component Selection
Loss function categorical_crossentropy
Activation function relu + softmax
Optimizer Adam
50 epochs 後
90% 準確率!
135. Tips for Deep Learning
138
YesGood result on
training dataset?
YesGood result on
testing dataset?
No
什麼是 overfitting?
training result 進步,但 testing result 反而變差
Early Stopping
Regularization
Dropout
136. Tips for Deep Learning
139
YesGood result on
training dataset?
YesGood result on
testing dataset?
No
Early Stopping
Regularization
Dropout
145. Early Stopping in Keras
Early Stopping
monitor: 要監控的 performance index
patience: 可以容忍連續幾次的不思長進
148
''' EarlyStopping '''
from keras.callbacks import EarlyStopping
earlyStopping=EarlyStopping(monitor = 'val_loss',
patience = 3)
156. How to Set Dropout
不要一開始就加入 Dropout
不要一開始就加入 Dropout
不要一開始就加入 Dropout
a) Dropout 會讓 training performance 變差
b) Dropout 是在避免 overfitting,不是萬靈丹
c) 參數少時,regularization
159
164. Tips for Training Your Own DL Model
167
Yes Good result on
testing dataset?
No
Early Stopping
Regularization
Dropout
No
Activation Function
Loss Function
Optimizer
Learning Rate
Good result on
training dataset?
170. Introduction
“transfer”: use the knowledge learned from task A to
tackle another task B
Example: 綿羊/羊駝 classifier
173
綿羊
羊駝
其他動物的圖
171. Use as Fixed Feature Extractor
A known model, like VGG, trained on ImageNet
ImageNet: 10 millions images with labels
174
OutputInput
取某一個 layer output
當作 feature vectors
Train a classifier based on the features
extracted by a known model
172. Use as Initialization
Initialize your net by the
weights of a known model
Use your dataset to further
train your model
Fine-tuning the known
model
175
OutputInput
OutputInput
VGG model
Your model
173. Short Summary
Unlabeled data (lack of y)
Semi-supervised learning
Insufficient data (lack of both x and y)
Transfer learning (focus on layer transfer)
Use as fixed feature extractor
Use as initialization
Resources: https://keras.io/applications/
Jason Yosinski, Jeff Clune, Yoshua Bengio, Hod Lipson, “How transferable are
features in deep neural networks?”, https://arxiv.org/abs/1411.1792, 2014
176
174. Variants of Deep Neural Network
Convolutional Neural Network (CNN)
177
182. Common applications
模糊化, 銳利化, 浮雕
http://setosa.io/ev/image-kernels/
Convolution in Computer Vision (CV)
185
183. Adding each pixel and its local neighbors which are
weighted by a filter (kernel)
Perform this convolution process to every pixels
Convolution in Computer Vision (CV)
186
Image
Filter
184. Adding each pixel and its local neighbors which are
weighted by a filter (kernel)
Perform this convolution process to every pixels
Convolution in Computer Vision (CV)
187
Image Filter
A filter could be
seen as a pattern
189. Feedforward DNN
CNN Structure
192
Convolutional Layer
&
Activation Layer
Pooling Layer
Can be performed
may times
Flatten
PICACHU!!!
Pooling Layer
Convolutional Layer
&
Activation Layer
New image
New image
New image
208. CIFAR-10 Dataset
60,000 (50,000 training + 10,000 testing) samples,
32x32 color images in 10 classes
10 classes
airplane, automobile, ship, truck,
bird, cat, deer, dog, frog, horse
Official website
https://www.cs.toronto.edu/~kriz/
cifar.html
212
209. Overview of CIFAR-10 Dataset
Files of CIFAR-10 dataset
data_batch_1, …, data_batch_5
test_batch
4 elements in the input dataset
data
labels
batch_label
filenames
213
210. How to Load Samples form a File
This reading function is provided from the official site
214
# this function is provided from the official site
def unpickle(file):
import cPickle
fo = open(file, 'rb')
dict = cPickle.load(fo)
fo.close()
return dict
# reading a batch file
raw_data = unpickle(dataset_path + fn)
211. How to Load Samples form a File
Fixed function for Python3
215
# this function is provided from the official site
def unpickle(file):
import pickle
fo = open(file, 'rb')
dict = pickle.load(fo, encoding='latin1')
fo.close()
return dict
# reading a batch file
raw_data = unpickle(dataset_path + fn)
212. Checking the Data Structure
Useful functions and attributes
216
# [1] the type of input dataset
type(raw_data)
# <type 'dict'>
# [2] check keys in the dictionary
raw_data_keys = raw_data.keys()
# ['data', 'labels', 'batch_label', 'filenames']
# [3] check dimensions of pixel values
print "dim(data)", numpy.array(raw_data['data']).shape
# dim(data) (10000, 3072)
217. Input Structures in Keras
Depends on the configuration parameter of Keras
channels_last → (Height, Width, Depth)
channels_first→ (Depth, Height, Width)
222
Width
Height
Depth
32
32 {
"image_data_format":"channels_last",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "tensorflow"
}
218. Reshape the Training/Testing Inputs
利用影像的長寬資訊先將 RGB 影像分開,再利用
reshape 函式將一維向量轉換為二維矩陣,最後用
dstack 將 RGB image 連接成三維陣列
223
X_train = numpy.asarray(
[numpy.dstack(
(
r[0:(width*height)].reshape(height,width),
r[(width*height):(2*width*height)].reshape(height,width),
r[(2*width*height):(3*width*height)].reshape(height,width))
) for r in img_px_values]
)
Y_train = np_utils.to_categorical(numpy.array(img_lab), classes)
219. Saving Each Data as Image
SciPy library (pillow package)
Dimension of "arr_data" should be (height, width, 3)
Supported image format
.bmp, .png
224
''' saving ndarray to image'''
from scipy.misc import imsave
def ndarray2image(arr_data, image_fn):
imsave(image_fn, arr_data)
220. Saving Each Data as Image
PIL library (Linux OS)
Dimension of "arr_data" should be (height, width, 3)
Supported image format
.bmp, .jpeg, .png, etc.
225
''' saving ndarray to image'''
from PIL import Image
def ndarray2image(arr_data, image_fn):
img = Image.fromarray(arr_data, 'RGB')
img.save(image_fn)
224. Only one function
Total parameters
Number of Parameters of Each Layers
229
# check parameters of every layers
model.summary()
32*3*3*3 + 32=896
32*3*3*32 + 32=9,248
7200*512 + 512=3,686,912
225. Let’s Start Training
Two validation methods
Validate with splitting training samples
Validate with testing samples
230
''' training'''
# define batch size and # of epoch
batch_size = 128
epoch = 32
# [1] validation data comes from training data
fit_log = model.fit(X_train, Y_train, batch_size=batch_size,
nb_epoch=epoch, validation_split=0.1,
shuffle=True)
# [2] validation data comes from testing data
fit_log = model.fit(X_train, Y_train, batch_size=batch_size,
nb_epoch=epoch, shuffle=True,
validation_data=(X_test, Y_test))
226. Saving Training History
Save training history to .csv file
231
'''saving training history'''
import csv
# define the output file name
history_fn = 'ccmd.csv'
# create the output file
def write_csv(history_fn, fit_log):
with open(history_fn, 'wb') as csv_file:
w = csv.writer(csv_file, lineterminator='n')
# convert the data structure from dictionary to ndarray
temp = numpy.array(fit_log.history.values())
# write headers
w.writerow(fit_log.history.keys())
# write values
for i in range(temp.shape[1]):
w.writerow(temp[:,i])
227. Model Saving and Prediction
Saving/loading the whole CNN model
Predicting the classes with new image samples
232
'''saving model'''
from keras.models import load_model
model.save('my_first_cnn_model.h5')
del model
'''loading model'''
model = load_model('my_first_cnn_model.h5')
'''prediction'''
pred = model.predict_classes(X_test, batch_size, verbose=0)
229. Practice – Design a CNN Model
設計一個 CNN model,並讓他可以順利執行 (Line
17-32)
235
# set dataset path
dataset_path = './cifar_10/'
classes = 10
X_train, X_test, Y_train, Y_test =
utils.read_dataset(dataset_path, "img")
'''CNN model'''
model = Sequential()
# 請建立一個 CNN model
# CNN
model.add(Flatten())
# DNN
230. Let’s Try CNN
Hints
Check the format of training dataset / validation dataset
Design your own CNN model
Don’t forget saving the model
236
Figure reference
https://unsplash.com/collections/186797/coding
235. Recap – Fundamentals
Fundamentals of deep learning
A neural network = a function
Gradient descent
Stochastic gradient descent
Mini-batch
Guidelines to determine a network structure
241
236. Recap – Improvement on Training Set
How to improve performance on training dataset
242
Activation Function
Loss Function
Optimizer
Learning Rate
237. Recap – Improvement on Testing Set
How to improve performance on testing dataset
243
Early Stopping
Regularization
Dropout
238. Recap – CNN
Fundamentals of CNN
Concept of filters
Hyper-parameters
Filter size
Zero-padding
Stride
Depth (total number of filters)
Pooling layers
How to train a CNN in Keras
CIFAR-10 dataset
244
240. Model 儲存與讀取
246
# save model
model.save(“filename.h5”)
# load model
from keras.model import load_model
model_test = load_model(“filename.h5”)
# BTW, use model.summary() to check your layers
Model_test.summary()
241. How to Get Trained Weights
weights = model.get_weights()
model.layers[1].set_weights(weights[0:2])
247
# get weights
myweight = model_test.get_weights()
# set weights
model_test.layers[1].set_weights(myweights[0:2])
# BTW, use model.summary() to check your layers
model_test.summary()
242. How to Get Layer Output
248
# get weights
model_layer1 = Sequential()
model_layer1.add(Dense(128,input_dim=200,
weights=model_test.layers[0].get_weights()))
model_layer1.add(Activation(‘relu’))
# predict
model_layer1.predict(X_train[0:1])
243. Fit_Generator
當資料太大無法一次讀進時 (memory limitation)
249
# get weights
def train_generator(batch_size):
while 1:
data = np.genfromtext('pkgo_city66_class5_v1.csv',
delimiter=',',
skip_header=1)
for i in range(0,np.floor(batch_size/len(data)))
x = data[i*batch_size:(i+1)*batch_size,:200]
y = data[i*batch_size:(i+1)*batch_size,200]
yield x,y
Model.fit_generator(train_generator(28),
epochs=30,
steps_per_epoch=100,
validation_steps=100) # or validation_data
249. Go Deeper in Deep Learning
“Neural Networks and Deep Learning”
written by Michael Nielsen
http://neuralnetworksanddeeplearning.com/
“Deep Learning”
Written by Yoshua Bengio, Ian J. Goodfellow and Aaron
Courville
http://www.iro.umontreal.ca/~bengioy/dlbook/
Course: Machine learning and having it deep and
structured
http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLSD15_
2.html
(Slide Credit: Hung-Yi Lee)
250. References
Keras documentation Keras 官方網站,非常詳細
Keras Github 可以從 example/ 中找到適合自己應用的範例
Youtube 頻道 – 台大電機李宏毅教授
Convolutional Neural Networks for Visual Recognition cs231n
若有課程上的建議,歡迎來信
cmchang@iis.sinica.edu.tw and chihfan@iis.sinica.edu.tw
257