Machine Learning Software: Design and Practical Use

Similar documents
Lecture 1: Machine Learning Basics

Learning From the Past with Experiment Databases

CS Machine Learning

Python Machine Learning

Reducing Features to Improve Bug Prediction

CSL465/603 - Machine Learning

Detecting Wikipedia Vandalism using Machine Learning Notebook for PAN at CLEF 2011

Speech Emotion Recognition Using Support Vector Machine

(Sub)Gradient Descent

Chinese Language Parsing with Maximum-Entropy-Inspired Parser

Artificial Neural Networks written examination

System Implementation for SemEval-2017 Task 4 Subtask A Based on Interpolated Deep Neural Networks

Assignment 1: Predicting Amazon Review Ratings

Getting Started with Deliberate Practice

Module 12. Machine Learning. Version 2 CSE IIT, Kharagpur

Speech Segmentation Using Probabilistic Phonetic Feature Hierarchy and Support Vector Machines

Rule Learning With Negation: Issues Regarding Effectiveness

Lecture 10: Reinforcement Learning

Reinforcement Learning by Comparing Immediate Reward

Exposé for a Master s Thesis

Human Emotion Recognition From Speech

Improving Machine Learning Input for Automatic Document Classification with Natural Language Processing

WHEN THERE IS A mismatch between the acoustic

Machine Learning and Data Mining. Ensembles of Learners. Prof. Alexander Ihler

Discriminative Learning of Beam-Search Heuristics for Planning

College Pricing. Ben Johnson. April 30, Abstract. Colleges in the United States price discriminate based on student characteristics

QuickStroke: An Incremental On-line Chinese Handwriting Recognition System

The 9 th International Scientific Conference elearning and software for Education Bucharest, April 25-26, / X

Physics 270: Experimental Physics

Rule Learning with Negation: Issues Regarding Effectiveness

Software Maintenance

Twitter Sentiment Classification on Sanders Data using Hybrid Approach

Introduction to Ensemble Learning Featuring Successes in the Netflix Prize Competition

Switchboard Language Model Improvement with Conversational Data from Gigaword

Semi-Supervised Face Detection

Ensemble Technique Utilization for Indonesian Dependency Parser

ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY DOWNLOAD EBOOK : ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY PDF

Experiment Databases: Towards an Improved Experimental Methodology in Machine Learning

Model Ensemble for Click Prediction in Bing Search Ads

CS 446: Machine Learning

The Algebra in the Arithmetic Finding analogous tasks and structures in arithmetic that can be used throughout algebra

The Good Judgment Project: A large scale test of different methods of combining expert predictions

Australian Journal of Basic and Applied Sciences

Quantitative analysis with statistics (and ponies) (Some slides, pony-based examples from Blase Ur)

arxiv: v1 [cs.lg] 3 May 2013

Notes on The Sciences of the Artificial Adapted from a shorter document written for course (Deciding What to Design) 1

Using Web Searches on Important Words to Create Background Sets for LSI Classification

How we look into complaints What happens when we investigate

Detecting English-French Cognates Using Orthographic Edit Distance

Generative models and adversarial training

Kristin Moser. Sherry Woosley, Ph.D. University of Northern Iowa EBI

Data Integration through Clustering and Finding Statistical Relations - Validation of Approach

Active Learning. Yingyu Liang Computer Sciences 760 Fall

arxiv: v1 [cs.lg] 15 Jun 2015

Knowledge Transfer in Deep Convolutional Neural Nets

OCR for Arabic using SIFT Descriptors With Online Failure Prediction

IT Students Workshop within Strategic Partnership of Leibniz University and Peter the Great St. Petersburg Polytechnic University

Learning Structural Correspondences Across Different Linguistic Domains with Synchronous Neural Language Models

Experiments with SMS Translation and Stochastic Gradient Descent in Spanish Text Author Profiling

Linking Task: Identifying authors and book titles in verbose queries

Notetaking Directions

Detailed course syllabus

Georgetown University at TREC 2017 Dynamic Domain Track

Course Outline. Course Grading. Where to go for help. Academic Integrity. EE-589 Introduction to Neural Networks NN 1 EE

Iterative Cross-Training: An Algorithm for Learning from Unlabeled Web Pages

Evaluating and Comparing Classifiers: Review, Some Recommendations and Limitations

Evolutive Neural Net Fuzzy Filtering: Basic Description

Word Segmentation of Off-line Handwritten Documents

Axiom 2013 Team Description Paper

How to organise Quality Events

A study of speaker adaptation for DNN-based speech synthesis

Predicting Student Attrition in MOOCs using Sentiment Analysis and Neural Networks

Optimizing to Arbitrary NLP Metrics using Ensemble Selection

On-the-Fly Customization of Automated Essay Scoring

MULTILINGUAL INFORMATION ACCESS IN DIGITAL LIBRARY

Students Understanding of Graphical Vector Addition in One and Two Dimensions

Rule discovery in Web-based educational systems using Grammar-Based Genetic Programming

The Strong Minimalist Thesis and Bounded Optimality

MGT/MGP/MGB 261: Investment Analysis

A Case Study: News Classification Based on Term Frequency

Improving Conceptual Understanding of Physics with Technology

An empirical study of learning speed in backpropagation

Likelihood-Maximizing Beamforming for Robust Hands-Free Speech Recognition

Applying Fuzzy Rule-Based System on FMEA to Assess the Risks on Project-Based Software Engineering Education

Netpix: A Method of Feature Selection Leading. to Accurate Sentiment-Based Classification Models

Telekooperation Seminar

SINGLE DOCUMENT AUTOMATIC TEXT SUMMARIZATION USING TERM FREQUENCY-INVERSE DOCUMENT FREQUENCY (TF-IDF)

Thesis-Proposal Outline/Template

Job Hunting Skills: Interview Process

Test Effort Estimation Using Neural Network

Robust Speech Recognition using DNN-HMM Acoustic Model Combining Noise-aware training with Spectral Subtraction

Entrepreneurial Discovery and the Demmert/Klein Experiment: Additional Evidence from Germany

Calibration of Confidence Measures in Speech Recognition

PREDICTING SPEECH RECOGNITION CONFIDENCE USING DEEP LEARNING WITH WORD IDENTITY AND SCORE FEATURES

Bootstrapping Personal Gesture Shortcuts with the Wisdom of the Crowd and Handwriting Recognition

WE GAVE A LAWYER BASIC MATH SKILLS, AND YOU WON T BELIEVE WHAT HAPPENED NEXT

Probabilistic Latent Semantic Analysis

Semi-supervised methods of text processing, and an application to medical concept extraction. Yacine Jernite Text-as-Data series September 17.

arxiv: v1 [math.at] 10 Jan 2016

A New Perspective on Combining GMM and DNN Frameworks for Speaker Adaptation

Transcription:

Machine Learning Software: Design and Practical Use Chih-Jen Lin National Taiwan University ebay Research Labs Talk at Machine Learning Summer School, Santa Cruz, July 16, 2012 Chih-Jen Lin (National Taiwan Univ.) 1 / 79

Machine Learning Software Most machine learning works focus on developing algorithms Researchers didn t pay much attention to software Recently, some think software is important. For example, The need for open source software in machine learning by Sonnenburg et al. (2007) One reasons is for replicating and evaluating research results However, a good software package is beyond that Chih-Jen Lin (National Taiwan Univ.) 2 / 79

Machine Learning Software (Cont d) In this talk, I will share our experiences in developing LIBSVM and LIBLINEAR. LIBSVM (Chang and Lin, 2011): One of the most popular SVM packages; cited almost 10, 000 times on Google Scholar LIBLINEAR (Fan et al., 2008): A library for large linear classification; popular in Internet companies for document classification and NLP applications Chih-Jen Lin (National Taiwan Univ.) 3 / 79

Machine Learning Software (Cont d) This talk will contain two parts: First, we discuss practical use of SVM as an example to see users needs Second, we discuss design considerations for a good machine learning package. We didn t know or expect most of them in the beginning! The talk is biased toward SVM and logistic regression, but materials are useful for other machine learning methods. Chih-Jen Lin (National Taiwan Univ.) 4 / 79

Outline 1 Practical use of SVM SVM introduction A real example Parameter selection 2 Design of machine learning software Users and their needs Design considerations 3 Discussion and conclusions Chih-Jen Lin (National Taiwan Univ.) 5 / 79

Outline Practical use of SVM 1 Practical use of SVM SVM introduction A real example Parameter selection 2 Design of machine learning software Users and their needs Design considerations 3 Discussion and conclusions Chih-Jen Lin (National Taiwan Univ.) 6 / 79

Outline Practical use of SVM SVM introduction 1 Practical use of SVM SVM introduction A real example Parameter selection 2 Design of machine learning software Users and their needs Design considerations 3 Discussion and conclusions Chih-Jen Lin (National Taiwan Univ.) 7 / 79

Practical use of SVM SVM introduction Support Vector Classification Training data (x i, y i ), i = 1,..., l, x i R n, y i = ±1 Maximizing the margin (Boser et al., 1992; Cortes and Vapnik, 1995) min w,b 1 2 wt w + C l max(1 y i (w T φ(x i ) + b), 0) i=1 High dimensional ( maybe infinite ) feature space φ(x) = (φ 1 (x), φ 2 (x),...). w: maybe infinite variables Chih-Jen Lin (National Taiwan Univ.) 8 / 79

Practical use of SVM SVM introduction Support Vector Classification (Cont d) The dual problem (finite # variables) min α subject to 1 2 αt Qα e T α 0 α i C, i = 1,..., l y T α = 0, where Q ij = y i y j φ(x i ) T φ(x j ) and e = [1,..., 1] T At optimum w = l i=1 α iy i φ(x i ) Kernel: K(x i, x j ) φ(x i ) T φ(x j ) ; closed form Example: RBF kernel: e γ x i x j 2 Chih-Jen Lin (National Taiwan Univ.) 9 / 79

Practical use of SVM SVM introduction Support Vector Classification (Cont d) Only x i of α i > 0 used support vectors 1.2 1 0.8 0.6 0.4 0.2 0-0.2-1.5-1 -0.5 0 0.5 1 Chih-Jen Lin (National Taiwan Univ.) 10 / 79

Practical use of SVM SVM introduction Support Vector Classification (Cont d) For most users, what they hope is 1. Prepare training and testing sets 2. Run a package and get good results But things are not that simple Let s start with a practical example from a user Chih-Jen Lin (National Taiwan Univ.) 11 / 79

Outline Practical use of SVM A real example 1 Practical use of SVM SVM introduction A real example Parameter selection 2 Design of machine learning software Users and their needs Design considerations 3 Discussion and conclusions Chih-Jen Lin (National Taiwan Univ.) 12 / 79

Practical use of SVM A real example Let s Try a Practical Example A problem from astroparticle physics 1 1:2.61e+01 2:5.88e+01 3:-1.89e-01 4:1.25e+02 1 1:5.70e+01 2:2.21e+02 3:8.60e-02 4:1.22e+02 1 1:1.72e+01 2:1.73e+02 3:-1.29e-01 4:1.25e+02... 0 1:2.39e+01 2:3.89e+01 3:4.70e-01 4:1.25e+02 0 1:2.23e+01 2:2.26e+01 3:2.11e-01 4:1.01e+02 0 1:1.64e+01 2:3.92e+01 3:-9.91e-02 4:3.24e+01 Training and testing sets available: 3,089 and 4,000 Sparse format: zero values not stored Data available at LIBSVM Data Sets Chih-Jen Lin (National Taiwan Univ.) 13 / 79

Practical use of SVM A real example The Story Behind this Data Set User: I am using libsvm in a astroparticle physics application.. First, let me congratulate you to a really easy to use and nice package. Unfortunately, it gives me astonishingly bad results... OK. Please send us your data I am able to get 97% test accuracy. Is that good enough for you? User: You earned a copy of my PhD thesis Chih-Jen Lin (National Taiwan Univ.) 14 / 79

Practical use of SVM A real example The Story Behind this Data Set (Cont d) What we have seen over the years is that Users expect good results right after using a method If method A doesn t work, they switch to B They may inappropriately use most methods they tried But isn t it machine learning people s responsibility to make their methods easily give reasonable results? Chih-Jen Lin (National Taiwan Univ.) 15 / 79

Practical use of SVM A real example The Story Behind this Data Set (Cont d) We will discuss how we eventually came up with a setting for beginners It can quickly give them some reasonable results Chih-Jen Lin (National Taiwan Univ.) 16 / 79

Practical use of SVM Training and Testing A real example Training $./svm-train svmguide1 optimization finished, #iter = 6131 nsv = 3053, nbsv = 724 Total nsv = 3053 Testing $./svm-predict svmguide1.t svmguide1.model out Accuracy = 66.925% (2677/4000) nsv and nbsv: number of SVs and bounded SVs (α i = C). Chih-Jen Lin (National Taiwan Univ.) 17 / 79

Why this Fails Practical use of SVM A real example After training, nearly 100% support vectors Training and testing accuracy different $./svm-predict svmguide1 svmguide1.model out Accuracy = 99.7734% (3082/3089) Most kernel elements: { K ij = e x i x j 2 /4 = 1 if i = j, 0 if i j. Some features in rather large ranges Chih-Jen Lin (National Taiwan Univ.) 18 / 79

Data Scaling Practical use of SVM A real example Without scaling Attributes in greater numeric ranges may dominate Linearly scale each feature to [0, 1] by: feature value min, max min There are other scaling methods Scaling generally helps, but not always Chih-Jen Lin (National Taiwan Univ.) 19 / 79

Practical use of SVM A real example Data Scaling: Same Factors A common mistake $./svm-scale -l -1 -u 1 svmguide1 > svmguide1.sc $./svm-scale -l -1 -u 1 svmguide1.t > svmguide1. -l -1 -u 1: scaling to [ 1, 1] Same factor on training and testing $./svm-scale -s range1 svmguide1 > svmguide1.sca $./svm-scale -r range1 svmguide1.t > svmguide1.t Later we will give a real example Chih-Jen Lin (National Taiwan Univ.) 20 / 79

Practical use of SVM After Data Scaling A real example Train scaled data and then predict $./svm-train svmguide1.scale $./svm-predict svmguide1.t.scale svmguide1.scale svmguide1.t.predict Accuracy = 96.15% Training accuracy is now similar $./svm-predict svmguide1.scale svmguide1.scale.m Accuracy = 96.439% Default parameter: C = 1, γ = 0.25 Chih-Jen Lin (National Taiwan Univ.) 21 / 79

Outline Practical use of SVM Parameter selection 1 Practical use of SVM SVM introduction A real example Parameter selection 2 Design of machine learning software Users and their needs Design considerations 3 Discussion and conclusions Chih-Jen Lin (National Taiwan Univ.) 22 / 79

Practical use of SVM Different Parameters Parameter selection If we use C = 20, γ = 400 $./svm-train -c 20 -g 400 svmguide1.scale $./svm-predict svmguide1.scale svmguide1.sca Accuracy = 100% (3089/3089) 100% training accuracy but $./svm-predict svmguide1.t.scale svmguide1.s Accuracy = 82.7% (3308/4000) Very bad test accuracy Overfitting happens Chih-Jen Lin (National Taiwan Univ.) 23 / 79

Overfitting Practical use of SVM Parameter selection In theory You can easily achieve 100% training accuracy This is useless When training and predicting a data, we should Avoid underfitting: small training error Avoid overfitting: small testing error Chih-Jen Lin (National Taiwan Univ.) 24 / 79

Practical use of SVM Parameter selection and : training; and : testing Chih-Jen Lin (National Taiwan Univ.) 25 / 79

Practical use of SVM Parameter Selection Parameter selection Need to select suitable parameters C and kernel parameters Example: γ of e γ x i x j 2 a, b, d of (x T i x j /a + b) d How to select them so performance is better? Chih-Jen Lin (National Taiwan Univ.) 26 / 79

Practical use of SVM Performance Evaluation Parameter selection Available data training and validation Train the training; test the validation k-fold cross validation (CV): Data randomly separated to k groups Each time k 1 as training and one as testing Select parameters/kernels with best CV result Chih-Jen Lin (National Taiwan Univ.) 27 / 79

Practical use of SVM Contour of CV Accuracy Parameter selection Chih-Jen Lin (National Taiwan Univ.) 28 / 79

Practical use of SVM Parameter selection The good region of parameters is quite large SVM is sensitive to parameters, but not that sensitive Sometimes default parameters work but it s good to select them if time is allowed Chih-Jen Lin (National Taiwan Univ.) 29 / 79

Practical use of SVM Parameter selection Example of Parameter Selection $./svm-train svmguide3 $./svm-predict svmguide3.t svmguide3.model o Accuracy = 2.43902% $./svm-scale -s range3 svmguide3 > svmguide3.sca $./svm-scale -r range3 svmguide3.t > svmguide3.t $./svm-train svmguide3.scale $./svm-predict svmguide3.t.scale svmguide3.scale Accuracy = 12.1951% Low accuracy even after data scaling Chih-Jen Lin (National Taiwan Univ.) 30 / 79

Practical use of SVM Parameter selection Example of Parameter Selection (Cont d) Conduct parameter selection by a simple grid search $ python grid.py svmguide3.scale 128.0 0.125 84.8753 (Best C =128.0, γ=0.125 with five-fold cross-validation rate=84.8753%) Train and predict using the obtained parameters $./svm-train -c 128 -g 0.125 svmguide3.scale $./svm-predict svmguide3.t.scale svmguide3.scal Accuracy = 87.8049% Chih-Jen Lin (National Taiwan Univ.) 31 / 79

Selecting Kernels Practical use of SVM Parameter selection RBF, polynomial, or others? For beginners, use RBF first Linear kernel: special case of RBF Performance of linear the same as RBF under certain parameters (Keerthi and Lin, 2003) Polynomial kernel: (x T i x j /a + b) d Numerical difficulties: (< 1) d 0, (> 1) d More parameters than RBF Chih-Jen Lin (National Taiwan Univ.) 32 / 79

Practical use of SVM Parameter selection A Simple Procedure for Beginners 1. Conduct simple scaling on the data 2. Consider RBF kernel K(x, y) = e γ x y 2 3. Use cross-validation to find the best parameter C and γ 4. Use the best C and γ to train the whole training set 5. Test In LIBSVM, we have a python script easy.py implementing this procedure. It has been very useful for beginners More details can be seen in Hsu et al. (2003). Chih-Jen Lin (National Taiwan Univ.) 33 / 79

Practical use of SVM Parameter selection A Real Example of Wrong Scaling Separately scale each feature of training and testing data to [0, 1] $../svm-scale -l 0 svmguide4 > svmguide4.scale $../svm-scale -l 0 svmguide4.t > svmguide4.t.sc $ python easy.py svmguide4.scale svmguide4.t.sca Accuracy = 69.2308% (216/312) (classification) The accuracy is low even after parameter selection $../svm-scale -l 0 -s range4 svmguide4 > svmguid $../svm-scale -r range4 svmguide4.t > svmguide4 $ python easy.py svmguide4.scale svmguide4.t.sca Accuracy = 89.4231% (279/312) (classification) Chih-Jen Lin (National Taiwan Univ.) 34 / 79

Practical use of SVM Parameter selection A Real Example of Wrong Scaling (Cont d) With the correct setting, the 10 features in testing data svmguide4.t.scale have the following maximal values: 0.7402, 0.4421, 0.6291, 0.8583, 0.5385, 0.7407, 0.3982, 1.0000, 0.8218, 0.9874 Scaling the testing set to [0, 1] generated an erroneous set. Chih-Jen Lin (National Taiwan Univ.) 35 / 79

Outline Design of machine learning software 1 Practical use of SVM SVM introduction A real example Parameter selection 2 Design of machine learning software Users and their needs Design considerations 3 Discussion and conclusions Chih-Jen Lin (National Taiwan Univ.) 36 / 79

Outline Design of machine learning software Users and their needs 1 Practical use of SVM SVM introduction A real example Parameter selection 2 Design of machine learning software Users and their needs Design considerations 3 Discussion and conclusions Chih-Jen Lin (National Taiwan Univ.) 37 / 79

Design of machine learning software Users and their needs Users Machine Learning Knowledge When we started developing LIBSVM, we didn t know who our users are or whether we will get any Very soon we found that for a classification package like LIBSVM, many users have zero machine learning knowledge It is unbelievable that many asked what the difference between training and testing is Chih-Jen Lin (National Taiwan Univ.) 38 / 79

Design of machine learning software Users and their needs Users Machine Learning Knowledge (Cont d) A sample mail From: To: cjlin@csie.ntu.edu.tw Subject: Doubt regarding SVM Date: Sun, 18 Jun 2006 10:04:01 +0530 (IST) Dear Sir, sir what is the difference between testing data and training data? Sometimes we cannot do much for such users. Chih-Jen Lin (National Taiwan Univ.) 39 / 79

Design of machine learning software Users and their needs Users Machine Learning Knowledge (Cont d) Fortunately, more people have taken machine learning courses (or attend MLSS) On the other hand, because users are not machine learning researchers, some automatic or semi-automatic settings are helpful This leads to the simple procedure discussed above. Also, your target users affect your design. For example, we assume LIBLINEAR users are more experienced. Chih-Jen Lin (National Taiwan Univ.) 40 / 79

Design of machine learning software We are Our Own Users Users and their needs You may ask why we care non-machine learning users so much The reason is that we were among them before My background is in optimization. When we started working on SVM, we tried some UCI sets. We failed to obtain similar accuracy values in papers Through a painful process we learned that scaling may be needed Chih-Jen Lin (National Taiwan Univ.) 41 / 79

Design of machine learning software Users and their needs We are Our Own Users (Cont d) Machine learning researchers sometimes failed to see the difficulties of general users. As users of our own software, we constantly think about difficulties others may face Chih-Jen Lin (National Taiwan Univ.) 42 / 79

Design of machine learning software Users are Our Teachers Users and their needs While we criticize users lack of machine learning knowledge, they help to point out many useful directions Example: LIBSVM supported only binary classification in the beginning. From many users requests, we knew the importance of multi-class classification There are many possible approaches for multi-class SVM. Assume data are in k classes Chih-Jen Lin (National Taiwan Univ.) 43 / 79

Design of machine learning software Users and their needs Users are Our Teachers (Cont d) - One-against-the rest: Train k binary SVMs: 1st class vs. (2,, k)th class 2nd class vs.. (1, 3,..., k)th class - One-against-one: train k(k 1)/2 binary SVMs (1, 2), (1, 3),..., (1, k), (2, 3), (2, 4),..., (k 1, k) We finished a study in Hsu and Lin (2002), which is now well cited. Currently LIBSVM supports one-vs-one approach Chih-Jen Lin (National Taiwan Univ.) 44 / 79

Design of machine learning software Users and their needs Users are Our Teachers (Cont d) LIBSVM is among the first SVM software to handle multi-class data. This helps to attract many users. Users help to identify what are useful and what are not. Chih-Jen Lin (National Taiwan Univ.) 45 / 79

Outline Design of machine learning software Design considerations 1 Practical use of SVM SVM introduction A real example Parameter selection 2 Design of machine learning software Users and their needs Design considerations 3 Discussion and conclusions Chih-Jen Lin (National Taiwan Univ.) 46 / 79

Design of machine learning software One or Many Options Design considerations Sometimes we received the following requests 1. In addition to one-vs-one, could you include other multi-class approaches such as one-vs-the rest? 2. Could you extend LIBSVM to support other kernels such as χ 2 kernel? Two extremes in designing a software package 1. One option: reasonably good for most cases 2. Many options: users try options to get best results Chih-Jen Lin (National Taiwan Univ.) 47 / 79

Design of machine learning software Design considerations One or Many Options (Cont d) From a research viewpoint, we should include everything, so users can play with them But more options more powerful more complicated Some users have no abilities to choose between options Example: Some need χ 2 kernel, but some have no idea what it is Chih-Jen Lin (National Taiwan Univ.) 48 / 79

Design of machine learning software Design considerations One or Many Options (Cont d) For LIBSVM, we basically took the one option approach We are very careful in adding things to LIBSVM However, users do have different needs. For example, some need precision/recall rather than accuracy We end up with developing another web site LIBSVM Tools to serve users special needs Chih-Jen Lin (National Taiwan Univ.) 49 / 79

Design of machine learning software Design considerations One or Many Options (Cont d) Sample code in LIBSVM tools - Cross Validation with Different Criteria (AUC, F-score, etc.) - ROC Curve for Binary SVM - LIBSVM for string data Not sure if this is the best way, but seems ok so far Another advantage is we can maintain high quality for the core package. Things in LIBSVM Tools are less well maintained. Chih-Jen Lin (National Taiwan Univ.) 50 / 79

Design of machine learning software Design considerations Simplicity versus Better Performance This issue is related to one or many options discussed before Example: Before, our cross validation (CV) procedure is not stratified - Results less stable because data of each class not evenly distributed to folds - We now support stratified CV, but code becomes more complicated In general, we avoid changes for just marginal improvements Chih-Jen Lin (National Taiwan Univ.) 51 / 79

Design of machine learning software Design considerations Simplicity versus Better Performance (Cont d) A recent Google research blog Lessons learned developing a practical large scale machine learning system by Simon Tong From the blog, It is perhaps less academically interesting to design an algorithm that is slightly worse in accuracy, but that has greater ease of use and system reliability. However, in our experience, it is very valuable in practice. That is, a complicated method with a slightly higher accuracy may not be useful in practice Chih-Jen Lin (National Taiwan Univ.) 52 / 79

Design of machine learning software Design considerations Simplicity versus Better Performance (Cont d) Example: LIBSVM uses a grid search to find two parameters C and γ. We may think this is simple and naive Chih-Jen Lin (National Taiwan Univ.) 53 / 79

Design of machine learning software Design considerations Simplicity versus Better Performance (Cont d) Indeed, we studied loo bound in detail: and solved leave-one-out error f (C, γ) min f (C, γ) C,γ Results not very stable because f (C, γ) is only an approximation. Implementation is quite complicated. For only two parameters, a simple grid search may be a suitable choice Chih-Jen Lin (National Taiwan Univ.) 54 / 79

Design of machine learning software Numerical Stability Design considerations Many classification methods (e.g., SVM, neural networks) solve optimization problems Core of the implementation is essentially a numerical method Numerical analysts have a high standard on their code, but we machine learning people do not This situation is expected: If we put efforts on implementing method A and one day method B gives higher accuracy Efforts are wasted Chih-Jen Lin (National Taiwan Univ.) 55 / 79

Design of machine learning software Design considerations Numerical Stability (Cont d) However, quality of the numerical programs is important for a machine learning package We will give an example. In LIBSVM s probability outputs and LIBLINEAR s logistic regression, we calculate where l ( ) t i log(p i ) + (1 t i ) log(1 p i ), i=1 p i 1 1 + exp(af i + B) Chih-Jen Lin (National Taiwan Univ.) 56 / 79

Design of machine learning software Design considerations Numerical Stability (Cont d) log and exp could easily cause an overflow. If Af i + B is large exp(af i + B). Then p i 0 log(p i ) When p i is close to one. 1 p i = 1 is a catastrophic cancellation 1 1 + exp(af i + B) Chih-Jen Lin (National Taiwan Univ.) 57 / 79

Design of machine learning software Design considerations Numerical Stability (Cont d) Catastrophic cancellation (Goldberg, 1991): when subtracting two nearby numbers that are already results of floating-point operations, the relative error can be large so most digits are meaningless. If f i = 1, and (A, B) = ( 64, 0), in a simple C++ program with double precision, but exp(af i + B) 1 + exp(af i + B) 1 p i returns zero gives more accurate result Chih-Jen Lin (National Taiwan Univ.) 58 / 79

Design of machine learning software Design considerations Numerical Stability (Cont d) Catastrophic cancellation can usually be resolved by reformulation: ( ) t i log p i + (1 t i ) log(1 p i ) (1) ( ) = (t i 1)(Af i + B) + log 1 + exp(af i + B) (2) ( ) = t i (Af i + B) + log 1 + exp( Af i B) (3) To handle the overflow issue, we implement (1) with the following rule: If Af i + B 0 then use (3); Else use (2). Chih-Jen Lin (National Taiwan Univ.) 59 / 79

Legacy Issues Design of machine learning software Design considerations The compatibility between earlier and later versions is an issue Such legacy issues restrict developers to conduct certain changes. We face a similar situation. For example, we chose one-vs-one as the multi-class strategy. This decision affects subsequent buildups. Multi-class probability outputs must follow the one-vs-one structure. For classes i and j, we obtain P(x in class i x in class i or j), Chih-Jen Lin (National Taiwan Univ.) 60 / 79

Design of machine learning software Legacy Issues (Cont d) Design considerations Then we need to couple all ( k 2) results (k: the number of classes) and obtain P(x in class i), i = 1,..., k. If we further develop multi-label methods, we are restricted to extend from one-versus-one multi-class strategy If we considered other multi-class methods, methods for multi-class probabilities and multi-label classification would be different. Chih-Jen Lin (National Taiwan Univ.) 61 / 79

Design of machine learning software Legacy Issues (Cont d) Design considerations In LIBSVM, we understand this legacy issue in the beginning Example: we did not make the trained model a public structure Typically a user write the following C code to train and test #include <svm.h>... model = svm_train(...);... predict_label = svm_predict(model,x); svm.h includes all public functions and structures Chih-Jen Lin (National Taiwan Univ.) 62 / 79

Design of machine learning software Legacy Issues (Cont d) Design considerations We decided not to put model structure in svm.h Instead we put it in svm.cpp User can call model = svm_train(...); but cannot do int y1 = model.label[1]; We provide functions so users can obtain some model information svm_get_svm_type(model); svm_get_nr_class(model); svm_get_labels(model,...); Chih-Jen Lin (National Taiwan Univ.) 63 / 79

Design of machine learning software Legacy Issues (Cont d) Design considerations Reason: if one day we replace one-versus-one method with another one, users are transparent to the change But some users (mainly machine learning researchers) complained They need to access details of the ( k 2) models We insisted on not changing it for a long time. Recently, because software becomes mature and the chance of switching to another multi-class strategy is small, we make the structure public. Chih-Jen Lin (National Taiwan Univ.) 64 / 79

Design of machine learning software Design considerations Documentation and Support Any software needs good documents and support I cannot count how many mails my students and I replied. Maybe 20,000 or more. How to write good documents is an interesting issue Users may not understand what you wrote Here is an example: some users asked if LIBSVM supported multi-class classification I thought it s well documented in README Chih-Jen Lin (National Taiwan Univ.) 65 / 79

Design of machine learning software Design considerations Documentation and Support (Cont d) Finally I realized that they didn t read the whole README. And they didn t see multi-class in the usage Usage: svm-train [options] training_set_file options: -s svm_type : set type of SVM (default 0) 0 -- C-SVC 1 -- nu-svc 2 -- one-class SVM 3 -- epsilon-svr 4 -- nu-svr... Chih-Jen Lin (National Taiwan Univ.) 66 / 79

Design of machine learning software Design considerations Documentation and Support (Cont d) In the next version we will change the usage to -s svm_type : set type of SVM (default 0) 0 -- C-SVC (multi-class classific 1 -- nu-svc (multi-class classific 2 -- one-class SVM 3 -- epsilon-svr (regression) 4 -- nu-svr (regression) I am going to see how many asked why LIBSVM doesn t support two-class SVM Chih-Jen Lin (National Taiwan Univ.) 67 / 79

Outline Discussion and conclusions 1 Practical use of SVM SVM introduction A real example Parameter selection 2 Design of machine learning software Users and their needs Design considerations 3 Discussion and conclusions Chih-Jen Lin (National Taiwan Univ.) 68 / 79

Discussion and conclusions Software versus Experiment Code Many researchers now release experiment code used for their papers Reason: experiments can be reproduced This is important, but experiment code is different from software Experiment code often includes messy scripts for various settings in the paper useful for reviewers Example: to check an implementation trick in a proposed algorithm, need to run with/without the trick Chih-Jen Lin (National Taiwan Univ.) 69 / 79

Discussion and conclusions Software versus Experiment Code (Cont d) Software: for general users One or a few reasonable settings with a suitable interface are enough Many are now willing to release their experimental code Basically you clean up the code after finishing a paper But working on and maintaining high-quality software take much more work Chih-Jen Lin (National Taiwan Univ.) 70 / 79

Discussion and conclusions Software versus Experiment Code (Cont d) Reproducibility different from replicability (Drummond, 2009) Replicability: make sure things work on the sets used in the paper Reproducibility: ensure that things work in general In my group, we release experiment code for every paper for replicability And carefully select and modify some results to our software (hopefully) for reproducibility Chih-Jen Lin (National Taiwan Univ.) 71 / 79

Discussion and conclusions Software versus Experiment Code (Cont d) The community now lacks incentives for researchers to work on high quality software JMLR recently started open source software section (4-page description of the software) This is a positive direction How to properly evaluate such papers is an issue Some software are very specific on a small problem, but some are more general Chih-Jen Lin (National Taiwan Univ.) 72 / 79

Discussion and conclusions Research versus Software Development Shouldn t software be developed by companies? Two issues 1 Business models of machine learning software 2 Research problems in developing software Chih-Jen Lin (National Taiwan Univ.) 73 / 79

Discussion and conclusions Research versus Software Development (Cont d) Business model It is unclear to me what a good model should be Machine learning software are basically research software For example, LIBSVM and LIBLINEAR are used by Weka and Rapidminer through some interface functions These data mining packages are open sourced and their business is mainly on consulting Should we on the machine learning side use a similar way? Chih-Jen Lin (National Taiwan Univ.) 74 / 79

Discussion and conclusions Research versus Software Development (Cont d) Research issues A good machine learning package involves more than the core machine learning algorithms There are many other research issues - Numerical stability - Solving optimization problems - Parameter tuning - Serious comparisons These issues need researchers rather than engineers Currently we lack a system to encourage machine learning researchers to study these issues. Chih-Jen Lin (National Taiwan Univ.) 75 / 79

Conclusions Discussion and conclusions From my experience, developing machine learning software is very interesting. We have learned a lot from users in different application areas. We should encourage more researchers to develop high quality machine learning software Chih-Jen Lin (National Taiwan Univ.) 76 / 79

Discussion and conclusions Acknowledgments All users have greatly helped us to make improvements. Without them we cannot get this far. We also thank all our past group members Chih-Jen Lin (National Taiwan Univ.) 77 / 79

References I Discussion and conclusions B. E. Boser, I. Guyon, and V. Vapnik. A training algorithm for optimal margin classifiers. In Proceedings of the Fifth Annual Workshop on Computational Learning Theory, pages 144 152. ACM Press, 1992. C.-C. Chang and C.-J. Lin. LIBSVM: A library for support vector machines. ACM Transactions on Intelligent Systems and Technology, 2:27:1 27:27, 2011. Software available at http://www.csie.ntu.edu.tw/~cjlin/libsvm. C. Cortes and V. Vapnik. Support-vector network. Machine Learning, 20:273 297, 1995. C. Drummond. Replicability is not reproducibility: Nor is it good science. In Proceedings of the Evaluation Methods for Machine Learning Workshop at the 26th ICML, 2009. R.-E. Fan, K.-W. Chang, C.-J. Hsieh, X.-R. Wang, and C.-J. Lin. LIBLINEAR: A library for large linear classification. Journal of Machine Learning Research, 9:1871 1874, 2008. URL http://www.csie.ntu.edu.tw/~cjlin/papers/liblinear.pdf. D. Goldberg. What every computer scientist should know about floating-point arithmetic. ACM Computing Surveys, 23(1):5 48, 1991. C.-W. Hsu and C.-J. Lin. A comparison of methods for multi-class support vector machines. IEEE Transactions on Neural Networks, 13(2):415 425, 2002. C.-W. Hsu, C.-C. Chang, and C.-J. Lin. A practical guide to support vector classification. Technical report, Department of Computer Science, National Taiwan University, 2003. URL http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf. Chih-Jen Lin (National Taiwan Univ.) 78 / 79

References II Discussion and conclusions S. S. Keerthi and C.-J. Lin. Asymptotic behaviors of support vector machines with Gaussian kernel. Neural Computation, 15(7):1667 1689, 2003. S. Sonnenburg, M. Braun, C. Ong, S. Bengio, L. Bottou, G. Holmes, Y. LeCun, K. Müller, F. Pereira, C. Rasmussen, et al. The need for open source software in machine learning. Journal of Machine Learning Research, 8:2443 2466, 2007. Chih-Jen Lin (National Taiwan Univ.) 79 / 79