There’s a Misconception in the World of Machine Learning
There are those who believe that, to build and train a machine learning (ML) model, they are restricted to using a select few programming languages. Python and Java often top the list.
Python for Its Simplicity
The language has an abundance of out-the-box libraries to shorten development time. For example, PyBrain, a modular ML library, helps developers build algorithms, then test and compare solutions in predefined environments.
Java for Its Maturity
Java has been around for decades, so it’s the de facto language of choice for larger organizations such as banks and financial institutions when building and using algorithms.
What About JavaScript?
Well, for many developers, it was useful for nothing but the frontend. Even in the context of machine learning, most assumed JavaScript only had applications in data visualization: take the library D3.js, for example, used purely for visualizing data with HTML, SVG, and CSS.
But Times Are Changing
As are the dynamics of ML engineering. And it’s become common practice for developers to write machine learning functions using common web-scripting languages.
Machine Learning with JavaScript
These days, it’s possible to build and train an algorithm using any general-purpose programming language you want. And that includes JavaScript.
TensorFlow.js: The JavaScript Library for Machine Learning in the Browser
TensorFlow.js is a JavaScript library created by Google as an open-source framework for training and using machine learning models in the browser. In short, the framework helps JavaScript developers build and deploy ML models within client-side applications.
Pros and Cons of Using JavaScript for Machine Learning
The answer is… The fact that TensorFlow.js runs within the browser opens up a range of exciting possibilities for businesses and developers alike. As browsers are an interactive space: one that offers access to various sensors — including webcams and microphones — which can provide visuals and sounds as an input into any machine learning model.
Pros of TensorFlow.js
- Popularity: Developers who use it love TensorFlow.js. And adoration typically points to utility, so it’s safe to say the library offers a valuable addition to the world of machine learning.
- Performance: The language itself has high computational performance. It’s hardware-accelerated, as it uses WebGL (a JavaScript graphics API). Plus, if an end-user has a GPU in their system, developers can leverage that to enhance performance further.
- Security: Web-scripting languages can open potential vulnerabilities. However, TensorFlow.js has built a reputation for the security of its execution environment, ensuring devices remain protected against threats when running an application.
- Range: TensorFlow.js has already proven its value in several use cases on multiple devices: be it in JavaScript applications that run in the browser; on servers inside a Node.js environment; on the desktop; even in mobile browsers on Android and iOS devices.
Cons of TensorFlow.js
- Data Limitations: Despite all the positives, TensorFlow.js does not have default access to the file system in the browser host environment. This limits available data resources and can put restrictions on file sizes.
- Hardware Acceleration: The framework also has limited support for hardware acceleration. That said, as the open-source language evolves beyond v1.0, this situation is rapidly improving.
- Single-threaded: In the JavaScript library, single threads download synchronously, which might throttle performance. Developers can overcome this by yielding the main thread, say, to improve the responsiveness of a page during training.
What’s Possible with TensorFlow.js?
Presciently, many developers are moving from handling ML on back-end servers to front-end applications.
What’s Possible with Machine Learning and JavaScript?
Automatic Picture Manipulation: auto-adjust images based on a predefined rule-set using a browser-based application — even generate art using convolutional neural networks, as Google has done.
Offline Game Opponents: play against an AI-operated adversary, even when a video game is offline — as you can do against Chrome’s built-in Trex opponent.
Content Recommendation Engine: build and train an ML algorithm in the browser, identifying what users like to look at and surfacing more relevant content — just as Twitter have done to rank tweets.
Activity Monitoring: install a client-side application that learns usage patterns on a local network or device — to monitor and flag unusual activity.
Object Detection: use a client-side application to detect documents or objects in pictures — such as Airbnb uses to alert users to the presence of sensitive information when they upload a passport or driving license photo.
Conclusion
Yes — TensorFlow.js is in its early stages. Still, an increasing number of companies are experimenting with machine learning applications that run on the end-users’ device. And as devices get more powerful, the opportunity to experiment will only grow.
FAQs
- What is TensorFlow.js?
TensorFlow.js is a JavaScript library created by Google as an open-source framework for training and using machine learning models in the browser. - What are the pros of using TensorFlow.js?
TensorFlow.js has several advantages, including its popularity, performance, security, and range. - What are the cons of using TensorFlow.js?
TensorFlow.js has some limitations, including data limitations, hardware acceleration, and single-threaded performance. - What can you do with TensorFlow.js?
With TensorFlow.js, you can build and train ML models, create automatic picture manipulation, offline game opponents, content recommendation engines, activity monitoring, and object detection.