Book Image

Machine Learning with Swift

By : Jojo Moolayil, Alexander Sosnovshchenko, Oleksandr Baiev
Book Image

Machine Learning with Swift

By: Jojo Moolayil, Alexander Sosnovshchenko, Oleksandr Baiev

Overview of this book

Machine learning as a field promises to bring increased intelligence to the software by helping us learn and analyse information efficiently and discover certain patterns that humans cannot. This book will be your guide as you embark on an exciting journey in machine learning using the popular Swift language. We’ll start with machine learning basics in the first part of the book to develop a lasting intuition about fundamental machine learning concepts. We explore various supervised and unsupervised statistical learning techniques and how to implement them in Swift, while the third section walks you through deep learning techniques with the help of typical real-world cases. In the last section, we will dive into some hard core topics such as model compression, GPU acceleration and provide some recommendations to avoid common mistakes during machine learning application development. By the end of the book, you'll be able to develop intelligent applications written in Swift that can learn for themselves.
Table of Contents (18 chapters)
Title Page
Packt Upsell
Contributors
Preface
Index

Preface

Machine learning, as a field, promises to bring increasing intelligence to software by helping us learn and analyze information efficiently and discover certain things that humans cannot. We'll start by developing lasting intuition about the fundamental machine learning concepts in the first section. We'll explore various supervised and unsupervised learning techniques in the second section. Then, the third section, will walk you through deep learning techniques with the help of common real-world cases. In the last section, we'll dive into hardcore topics such as model compression and GPU acceleration, and provide some recommendations to avoid common mistakes during machine learning application development. By the end of the book, you'll be able to develop intelligent applications written in Swift that can learn for themselves.

Who this book is for

This book is for iOS developers who wish to create intelligent iOS applications, and data science professionals who are interested in performing machine learning using Swift. Familiarity with some basic Swift programming is all you need to get started with this book.

What this book covers

Chapter 1, Getting Started with Machine Learning, teaches the main concepts of machine learning.

Chapter 2, Classification – Decision Tree Learning, builds our first machine learning application.

Chapter 3, K-Nearest Neighbors Classifier, continues exploring classification algorithms, and we learn about instance-based learning algorithms.

Chapter 4, K-Means Clustering, continues with instance-based algorithms, this time focusing on an unsupervised clustering task.

Chapter 5, Association Rule Learning, explores unsupervised learning more deeply. 

Chapter 6, Linear Regression and Gradient Descent, returns to supervised learning, but this time we switch our attention from non-parametric models, such as KNN and k-means, to parametric linear models.

 Chapter 7, Linear Classifier and Logistic Regression, continues by building different, more complex models on top of linear regression: polynomial regression, regularized regression, and logistic regression.

Chapter 8, Neural Networks, implements our first neural network.

Chapter 9, Convolutional Neural Networks, continues NNs, but this time we focus on convolutional NNs, which are especially popular in the computer vision domain.

Chapter 10, Natural Language Processing, explores the amazing world of human natural language. We're also going to use neural networks to build several chatbots with different personalities.

Chapter 11, Machine Learning Libraries, overviews existing iOS-compatible libraries for machine learning. 

Chapter 12, Optimizing Neural Networks for Mobile Devices, talks about deep neural network deployment on mobile platforms.

Chapter 13, Best Practices, discusses a machine learning app's life cycle, common problems in AI projects, and how to solve them. 

To get the most out of this book

You will need the following software to be able to smoothly sail through this book:

  • Homebrew 1.3.8 +
  • Python 2.7.x
  • pip 9.0.1+
  • Virtualenv 15.1.0+
  • IPython 5.4.1+
  • Jupyter 1.0.0+
  • SciPy 0.19.1+
  • NumPy 1.13.3+
  • Pandas 0.20.2+
  • Matplotlib 2.0.2+
  • Graphviz 0.8.2+
  • pydotplus 2.0.2+
  • scikit-learn 0.18.1+
  • coremltools 0.6.3+
  • Ruby (default macOS version)
  • Xcode 9.2+
  • Keras 2.0.6+ with TensorFlow 1.1.0+ backend
  • keras-vis 0.4.1+
  • NumPy 1.13.3+
  • NLTK 3.2.4+
  • Gensim 2.1.0+

OS required:

  • macOS High Sierra 10.13.3+
  • iOS 11+ or simulator

Download the example code files

You can download the example code files for this book from your account at www.packtpub.com. If you purchased this book elsewhere, you can visit www.packtpub.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

  1. Log in or register at www.packtpub.com.
  2. Select the SUPPORT tab.
  3. Click on Code Downloads & Errata.
  4. Enter the name of the book in the Search box and follow the onscreen instructions.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

  • WinRAR/7-Zip for Windows
  • Zipeg/iZip/UnRarX for Mac
  • 7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Machine-Learning-with-Swift. In case there's an update to the code, it will be updated on the existing GitHub repository. The author has also hosted the code bundle on his GitHub repository at: https://github.com/alexsosn/SwiftMLBook.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Download the color images

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://www.packtpub.com/sites/default/files/downloads/MachineLearningwithSwift_ColorImages.pdf.

Conventions used

There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "The library we are using for datasets loading and manipulation is pandas."

A block of code is set as follows:

let bundle = Bundle.main 
let assetPath = bundle.url(forResource: "DecisionTree", withExtension:"mlmodelc") 

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

let metricsSKLRandomForest = evaluateAccuracy(yVecTest: groundTruth, predictions: predictionsSKLRandomForest) 
print(metricsSKLRandomForest) 

Any command-line input or output is written as follows:

> pip install -U numpy scipy matplotlib ipython jupyter scikit-learn pydotplus coremltools

Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "In the interface, the user selects the type of motion he wants to record, and presses the Record button."

Note

Warnings or important notes appear like this.

Note

Tips and tricks appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: Email [email protected] and mention the book title in the subject of your message. If you have questions about any aspect of this book, please email us at [email protected].

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packtpub.com.