<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Best practices Archives - Artificial Intelligence</title>
	<atom:link href="https://www.aiuniverse.xyz/tag/best-practices/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.aiuniverse.xyz/tag/best-practices/</link>
	<description>Exploring the universe of Intelligence</description>
	<lastBuildDate>Tue, 31 Mar 2020 08:56:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Best practices for threat modeling service mesh, microservices</title>
		<link>https://www.aiuniverse.xyz/best-practices-for-threat-modeling-service-mesh-microservices/</link>
					<comments>https://www.aiuniverse.xyz/best-practices-for-threat-modeling-service-mesh-microservices/#respond</comments>
		
		<dc:creator><![CDATA[aiuniverse]]></dc:creator>
		<pubDate>Tue, 31 Mar 2020 08:56:47 +0000</pubDate>
				<category><![CDATA[Microservices]]></category>
		<category><![CDATA[Best practices]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">http://www.aiuniverse.xyz/?p=7861</guid>

					<description><![CDATA[<p>Source: searchsecurity.techtarget.com Security professionals have probably noticed that containers, such as Docker and Rkt, as well as container orchestration &#8212; for example, Kubernetes &#8212; are gaining traction <a class="read-more-link" href="https://www.aiuniverse.xyz/best-practices-for-threat-modeling-service-mesh-microservices/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/best-practices-for-threat-modeling-service-mesh-microservices/">Best practices for threat modeling service mesh, microservices</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Source: searchsecurity.techtarget.com</p>



<p>Security professionals have probably noticed that containers, such as Docker and Rkt, as well as container orchestration &#8212; for example, Kubernetes &#8212; are gaining traction in a big way. This is because, as developers have discovered the power of microservices, they are moving away from monolithic or tightly coupled component design architectures and moving instead toward more decoupled models &#8212; i.e., models where REST is used as a layer of abstraction. </p>



<p>This offers several advantages from a developer point of view. First, it scopes out the implementation details of components communicating data from point A to point B. That&#8217;s a huge win already, but it also lets developers create versions of an interface, enabling them to add new functionality to an API in support of future development without the need to recode, recompile or alter the existing code base. This is one of the most powerful aspects from a development point of view of a microservices architecture &#8212; a software architecture strategy where functionality is modularized into small, discrete units of functionality, all accessible to each other through RESTful APIs.</p>



<p>As with anything, scale makes this complex. Imagine there are 500 RESTful APIs. Each API has a unique URL within the environment and is, more or less, agnostic about the underlying implementation details of the other services in the application that enables the overall application to function. Say, though, that either a broad change needs to be made to services en masse &#8212; for example, to enable TLS mutual authentication everywhere &#8212; or a targeted but disruptive change needs to be made to one service that affects the behavior of every other service &#8212; for example, changing the URL of an often-used service. Does every other service need to be changed? Do configuration changes need to be made to the containers those services are hosted on? These are exactly the kinds of things that microservices are designed to help prevent in the first place.</p>



<p>One technology that helps address the challenges in scale is service mesh. Service mesh introduces a method to enable changes to service operation without having to change underlying code. This is done usually using a sidecar proxy &#8212; i.e., a container image that lives next to the service that is responsible for directing traffic from that service. In this model, because services are talking through a proxy rather than communicating directly with each other, it provides a <em>hook</em> where designers can make changes to how that communication happens. Want to move services around? Sure, that can be done. Want to selectively turn off or on mutual authentication, rate limiting or HTTP headers? Those can be done too. And they can be completed without changing application code or the configuration of the container where the service lives.</p>



<h3 class="wp-block-heading">New challenge: Threat modeling service mesh</h3>



<p>These benefits turn the operations side of a service mesh deployment from a nightmare to something more manageable. However, it does have a byproduct of making application security analysts&#8217; lives more complex due to challenges in threat modeling that come about when a static pathway through the application can no longer be presupposed.</p>



<p>For those unfamiliar with application threat modeling, the idea is to decompose an application into its components parts, look from an attacker&#8217;s point of view at the interaction points between those components and then systematically map out how specifically each interaction can be misused to gain leverage. To do this, security pros often start by making a data flow diagram &#8212; a document that maps out how data is sent through an application and the components it interacts with along the way. From there, security pros look at specific types of misuse cases that can affect each interaction. For example, each element could be systematically worked through a mnemonic threat model, such as STRIDE &#8212; spoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege &#8212; to determine how an attacker might target each component.</p>



<p>The challenge with this approach, however, is that under a microservices model generally &#8212; and service mesh specifically &#8212; the pathway through the application won&#8217;t stay static over time. An application may work a particular way today, but it might work differently two weeks from now &#8212; for example, having different security controls or talking to different APIs.</p>



<h3 class="wp-block-heading">How to analyze service mesh</h3>



<p>So, what can be done to perform application threat modeling in a microservices and service mesh environment?</p>



<p>One approach is to modularize the threat management process itself. Just as security teams would look in detail at component interactions from an attacker&#8217;s point of view with a monolithic application or tightly bound components in a traditional application, so too would they for each service in a mesh. The difference is that, instead of focusing solely on one pathway through the application and the components used to support it, security pros must look also at each service independently. This is for two reasons:</p>



<ol class="wp-block-list"><li>Because each service is nonstatic, meaning it can move or change context rapidly. For example, a service might be not accessible to the internet today &#8212; i.e., being used only by other pieces of the application and not directly by end users &#8212; and be exposed tomorrow.</li><li>Because doing so enables security teams to keep up as developers release new or updated services on a continual basis.</li></ol>



<p>Looked at through this lens, threat modeling becomes even more useful in a microservices context than it already was. Decomposing the application is fairly easy to do &#8212; arguably easier than it would be otherwise &#8212; because services are already loosely coupled. Likewise, for shops that are pushing DevOps or continuous integration/continuous delivery, analysis is no longer a bottleneck since they don&#8217;t have to redo existing work when or if they release a new service.</p>



<p>To start threat modeling service mesh, begin by looking at each API in isolation, examining inputs, outputs and how they can be abused. Using STRIDE or another threat modeling methodology, examine and harden the service across each dimension. At the end of the process, there will be a small, hardened nugget of functionality about how an attacker might abuse the API, and resiliency will be increased.</p>



<p>It&#8217;s important to bear in mind there are advantages in evaluating the overall application, as well as looking at individual services in isolation, meaning doing this additively rather than entirely replacing full application decomposition. This might sound strange at first since interactions between services are expected to change rapidly over time. They will but looking at the overall flow has advantages, too. For example, it can help find and catch business logic errors that can affect security &#8212; for example, when input to one service is used and has ripple effects down the chain.</p>



<p>Threat modeling methods can and should be adapted for use in a microservices and service mesh architecture, even though service mesh changes the way that applications fit together. By looking at individual services in isolation, in addition to broader decomposition of the application overall, security pros can get better at accounting for changes in context, as well as streamline workloads.</p>
<p>The post <a href="https://www.aiuniverse.xyz/best-practices-for-threat-modeling-service-mesh-microservices/">Best practices for threat modeling service mesh, microservices</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/best-practices-for-threat-modeling-service-mesh-microservices/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What’s the Best Approach to Data Analytics?</title>
		<link>https://www.aiuniverse.xyz/whats-the-best-approach-to-data-analytics/</link>
					<comments>https://www.aiuniverse.xyz/whats-the-best-approach-to-data-analytics/#respond</comments>
		
		<dc:creator><![CDATA[aiuniverse]]></dc:creator>
		<pubDate>Tue, 03 Mar 2020 07:13:10 +0000</pubDate>
				<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Best practices]]></category>
		<category><![CDATA[data analytics]]></category>
		<category><![CDATA[data science]]></category>
		<category><![CDATA[data systems]]></category>
		<guid isPermaLink="false">http://www.aiuniverse.xyz/?p=7191</guid>

					<description><![CDATA[<p>Source: hbr.org In practicing data analytics for more than 30 years, and leading, advising, interviewing and teaching executives in many industries on data analytics for five years, <a class="read-more-link" href="https://www.aiuniverse.xyz/whats-the-best-approach-to-data-analytics/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/whats-the-best-approach-to-data-analytics/">What’s the Best Approach to Data Analytics?</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Source: hbr.org</p>



<p>In practicing data analytics for more than 30 years, and leading, advising, interviewing and teaching executives in many industries on data analytics for five years, I’ve observed that their approaches generally fall into one of five scenarios: two that typically fail, two that sometimes work partially, and one that has emerged as best. Let’s take a look at each:</p>



<h3 class="wp-block-heading"><strong>1. We’re here to help — do you have any problems to solve?</strong></h3>



<p>This scenario often starts with the CEO (sometimes prompted by the board) deciding to hire a data scientist and establish a data analytics group. The data team sets out in the organization with great aspirations but without specific guidance to find business problems to solve. The data scientists, however, don’t have a practical understanding of the business, and the business leaders don’t know what, exactly, the data analysts are supposed to do or how to use them. As a senior executive of a very large enterprise said, “Our CEO hired a data scientist who reports to me, but I’m not sure what he does or what to do with him.”&nbsp;As the business leaders and the data scientists try to figure out how to relate, not much business value is created.</p>



<h3 class="wp-block-heading"><strong>2. Boil the ocean.</strong></h3>



<p>Well-intended enthusiasm for putting data science to use can lead to overly ambitious aspirations to impact the entire company at once.&nbsp;The reality, however, particularly in large companies, is there are too many legacy data systems, too many practical issues, and too few people on the data science team to produce a significant business lift across the whole company in short order. Business results typically fall well short of high expectations. As an executive of a multinational European manufacturing company observed, “We’ve been at this for three years, and spent millions of euros, but we don’t have much to show for it.” In the end, not much business value is actually realized.</p>



<h3 class="wp-block-heading"><strong>3. Let a thousand flowers bloom.&nbsp;</strong></h3>



<p>The third scenario has promise: C-level leaders direct that data analytics should be adopted throughout the company. The practical use is left to the discretion of each business unit leader or function head. While data analytics gets grounded in and kept close to the business, much depends on if and how individual business heads choose to use it. Some embrace it and achieve significant results; others aren’t sure what to do or else avoid it. “Data analytics” often becomes just enhanced business reporting. Databases, systems and tools proliferate. With fragmented efforts, it is difficult to scale the resultant activities and determine how much business value is being created.</p>



<h3 class="wp-block-heading"><strong>4. Three years and $10 million from now, it’s going to be great.</strong></h3>



<p>This rational approach is undertaken with all the right intentions — that data analytics can create business value, but require commitment, investment, and time. The problem is this approach typically results more in process than business outcomes. Often it involves a series of workshops, committees, and meetings that drag on without much to show for it. Multiyear investments are difficult to sustain without any business results in the face of competing budget demands and changing business conditions. A large industrial company, for example, has been planning, developing, and discussing their data analytics initiatives for years, but executives wonder where the effort is headed and when it will show business value. Despite a promising start, too much time passes without business results, and support wanes.</p>



<h3 class="wp-block-heading"><strong>5. Start with high-leverage business problems.</strong></h3>



<p>Finally, the approach that works best: Identify a small number of “high-leverage” business problems that are tightly defined, promptly addressable, and will produce evident business value, and then focus on those to show business results. The specific business problem drives the team to identify the data needed and analytics to be used. Quick wins demonstrate business value. For example, a company that operates medical imaging clinics saw a high-leverage problem in patient “no shows.” The company set out to predict and reduce no-shows for the benefit of all involved: patients, doctors and technicians. Reducing “no shows” directly improves the bottom line. There’s no substitute for business results to build credibility for data analytics and sustain commitment.</p>



<h3 class="wp-block-heading"><strong>Best Practices for Data Analytics</strong></h3>



<p>As we look across these scenarios, best practices become clear, including:</p>



<ul class="wp-block-list"><li><strong>Data science can’t happen in a silo.</strong>&nbsp;It must be tightly integrated into the business organization, operations and processes.</li><li><strong>There needs to be joint prioritization.&nbsp;</strong>Business leaders and data scientists should jointly decide which business problems to focus on. If there is any question about priority, the final call should go the business heads.</li><li><strong>Leaders need to be conversant in data science.&nbsp;</strong>Business leaders don’t need in-depth expertise in data science, but they require a basic, working understanding. Being conversant enables business leaders to work effectively with their data science teams.</li><li><strong>You may need to accept “inconvenient outcomes.”</strong>&nbsp;Data inevitably creates transparency and reveals business insights that can be unexpected, uncomfortable, and unwelcome. Data analytics will unearth inefficiencies and misconceptions that complicate leadership and disrupt conventional thinking. Business leaders who crush or ignore answers they don’t like will rapidly undercut the value of data analytics.</li></ul>



<p>By observing the different approaches taken by a wide range of companies, we can see what works and what doesn’t to connect data analytics to creating real business value.&nbsp; Because if your data analytics isn’t adding real value to the business, it’s not going to be successful or sustainable.</p>
<p>The post <a href="https://www.aiuniverse.xyz/whats-the-best-approach-to-data-analytics/">What’s the Best Approach to Data Analytics?</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/whats-the-best-approach-to-data-analytics/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Google Shares Best Practices for Securing Microservices</title>
		<link>https://www.aiuniverse.xyz/google-shares-best-practices-for-securing-microservices/</link>
					<comments>https://www.aiuniverse.xyz/google-shares-best-practices-for-securing-microservices/#respond</comments>
		
		<dc:creator><![CDATA[aiuniverse]]></dc:creator>
		<pubDate>Thu, 19 Dec 2019 07:24:55 +0000</pubDate>
				<category><![CDATA[Microservices]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Securing]]></category>
		<guid isPermaLink="false">http://www.aiuniverse.xyz/?p=5702</guid>

					<description><![CDATA[<p>Source: containerjournal.com Google this week made a case for moving beyond firewalls to secure microservices-based applications built using containers by sharing the best practices for a zero-trust <a class="read-more-link" href="https://www.aiuniverse.xyz/google-shares-best-practices-for-securing-microservices/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/google-shares-best-practices-for-securing-microservices/">Google Shares Best Practices for Securing Microservices</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Source: containerjournal.com</p>



<p>Google this week made a case for moving beyond firewalls to secure microservices-based applications built using containers by sharing the best practices for a zero-trust networking model it relies on to secure its own web-scale IT environment.</p>



<p>Maya Kaczorowski, a product manager for Google, says Google makes extensive use of a BeyondProd framework, a cloud-native networking model that, among other things, ensures there is no inherent mutual trust between services and that chokepoints for consistent policy enforcement across services are created. Other concepts embedded into BeyondProd include mutually authenticated service endpoints, transport security, edge termination with global load balancing and denial of service protection, end-to-end code provenance and runtime sandboxing.</p>



<p>All the services Google provides run atop the Borg container orchestration engine, a pre-cursor to Kubernetes that Google still employs, on which BeyondProd is deployed.</p>



<p>BeyondProd is not intended to replace the need for firewalls as much as it is designed to augment them, says Kaczorowski. In fact, Google this week announced it has expanded its relationship with a dozen providers of cybersecurity platforms, including firewall providers Palo Alto Networks and Fortinet. It’s not at all clear, however, that any of the three major cloud platforms are all that much more secure than the other. In fact, just about every third-party cybersecurity vendor that supports Google Cloud also supports Amazon Web Services (AWS) and Microsoft Azure.</p>



<p>Google, like other cloud service providers, is highly committed to securing its own infrastructure. However, the security of the applications running on top of any cloud platform remain the responsibility of the IT team that deployed them. As IT teams increasingly embrace microservices-based applications, many are discovering that legacy approaches to securing applications are now insufficient.</p>



<p>Kaczorowski says Google is sharing how BeyondProd is constructed to encourage IT organizations to build their own zero-trust networking model for securing microservices-based applications.</p>



<p>The challenge many organizations will encounter in the months and years ahead is the need to deploy a zero-trust networking model across multiple clouds and on-premises IT environments that are likely to be running hundreds, if not thousands, of microservices. Unfortunately, most IT organizations are still struggling with how to secure monolithic applications on public clouds.</p>



<p>The highly dynamic nature of the containers that make up the bulk of the microservices being deployed presents organizations with a major challenge that in most cases will require them to define and adopt a range of best DevSecOps practices around a zero-trust networking model that needs to be continuously updated and managed. In many cases, roles surrounding who is responsible for building and deploying the zero-trust network across a team of cybersecurity and networking professionals have yet to be defined. Similarly, many organizations are still trying to determine to what degree developers will be held accountable for maintaining the security of their applications before and after they are deployed in a production environment.</p>



<p>Cybersecurity is likely to remain one of the biggest barriers of adoption when it comes to building and deploying cloud-native applications for the foreseeable future. The issue, however, is not so much the security of the cloud platforms being employed as much as it is the immaturity of the processes being employed to secure the applications running on those clouds</p>
<p>The post <a href="https://www.aiuniverse.xyz/google-shares-best-practices-for-securing-microservices/">Google Shares Best Practices for Securing Microservices</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/google-shares-best-practices-for-securing-microservices/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Machine Learning essentials: Best practices, categories and misconceptions</title>
		<link>https://www.aiuniverse.xyz/machine-learning-essentials-best-practices-categories-and-misconceptions/</link>
					<comments>https://www.aiuniverse.xyz/machine-learning-essentials-best-practices-categories-and-misconceptions/#comments</comments>
		
		<dc:creator><![CDATA[aiuniverse]]></dc:creator>
		<pubDate>Fri, 25 Aug 2017 07:40:59 +0000</pubDate>
				<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Categories]]></category>
		<category><![CDATA[Essentials]]></category>
		<category><![CDATA[Machine learning]]></category>
		<category><![CDATA[Machine learning misconceptions]]></category>
		<category><![CDATA[ML essentials]]></category>
		<guid isPermaLink="false">http://www.aiuniverse.xyz/?p=761</guid>

					<description><![CDATA[<p>Source:- jaxenter.com Artificial Intelligence and Machine Learning are all the rage right now. Many companies feel the pressure to invest in an AI strategy before fully understanding <a class="read-more-link" href="https://www.aiuniverse.xyz/machine-learning-essentials-best-practices-categories-and-misconceptions/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/machine-learning-essentials-best-practices-categories-and-misconceptions/">Machine Learning essentials: Best practices, categories and misconceptions</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Source:- jaxenter.com</p>
<p>Artificial Intelligence and Machine Learning are all the rage right now. Many companies feel the pressure to invest in an AI strategy before fully understanding what they are aiming to achieve. We talked with JAX London speakers Sumanas Sarma and Rob Hinds about the different types of ML tasks, the most suitable programming language for ML, misconceptions and more.</p>
<p><strong>JAXenter: Among the different types of ML tasks, a very important distinction is drawn between supervised and unsupervised learning. What is the difference between the two?</strong></p>
<p><strong>Sumanas Sarma &amp; Rob Hinds:</strong> <em>Supervised Learning</em> and <em>Unsupervised Learning</em> are considered two of the fundamental categories of Machine Learning (or any type of statistical learning).</p>
<div class="page" title="Page 1">
<div class="section">
<div class="layoutArea">
<div class="column">
<h3>Supervised Learning</h3>
<p>Problems that fall in this category have a set of inputs (these can be real values, categorical values) and have one of two kinds of output:</p>
<ol>
<li>Tasks where the goal is to output a category</li>
<li>Tasks where the goal is to output a real-value</li>
</ol>
<p>The first set are known as Classification tasks and typical examples might be to predict whether an input text has positive or negative sentiment, or given an image to identify the objects present in the image. The second set of tasks is known as Regression and typical examples are predicting house prices based on a set of input features (like latitude, longitude, number of rooms etc) or the age of a user given the set of apps on their phone.</p>
<p>Formally, Supervised Learning projects involve a set of variables that might be denoted as inputs, which are measured or preset. These have some influence on one or more outputs  The goal is to use the inputs to predict the values of the outputs.</p>
<p>Algorithms used for these problems: Linear regression, Random Forest Classification, Support Vector Machine Classification, Naive Bayes.</p>
<div class="page" title="Page 1">
<div class="section">
<div class="layoutArea">
<div class="column">
<h3>Unsupervised Learning</h3>
<p>Problems that fall in this category differ from Supervised Learning in one key aspect – for each given set of inputs, there is no given output. The goal, therefore, is to learn/discover the underlying structure or distribution in the input data without any guidance.</p>
<p>Like Supervised Learning problems there are two broad types of Unsupervised Learning problems:</p>
<ol>
<li>Clustering: determine inherent groups in the data. Eg, using customer data to predict behavior, or using web traffic sources to determine target pages on the site</li>
<li>Association: determine inherent rules in the data. Eg, if a customer purchases items x and y within a certain time period, they are likely to purchase z. For instance, if a customer buys onions (x) and potatoes(y), they are likely to then buy hamburger meat (z).</li>
</ol>
</div>
</div>
</div>
</div>
<div class="page" title="Page 2">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>Algorithms used for these problems: k-means clustering, Expectation Maximisation (for Gaussian Mixture Models), Manifold Learning.</p>
<div class="page" title="Page 2">
<div class="section">
<div class="layoutArea">
<div class="column">
<h4>To summarise</h4>
<p><em>Supervised:</em> All input data is mapped to corresponding output values and the algorithms learn to predict the output from the input data.</p>
<p><em>Unsupervised:</em> Absence of output values and the algorithms learn the inherent structure from the input data.</p>
<p>There is a third type <em>Semi-supervised</em> where some data is labeled but most of it is unlabeled and a mixture of supervised and unsupervised techniques can be used.</p>
<p><strong>JAXenter: Which programming language is the most suitable for ML?</strong></p>
<p><strong>Sumanas Sarma &amp; Rob Hinds: </strong>A controversial one, which like any question about programming languages doesn’t have one true answer.</p>
<div class="page" title="Page 2">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>Several choices can be considered with some geared towards a research-focused approach whilst others are built with an aim for use in industrial applications. Much like choosing a programming language, the best candidate often depends on what it will be used for. For example, while using MATLAB or Octave may be easier to experiment with Machine Learning and Deep Learning architectures, they are poorly suited for deploying to production.</p>
<blockquote><p><strong>Ultimately, the choice of language will hinge on the problem that needs to be solved. </strong></p></blockquote>
<p>The most popular language used in ML is Python, a lot of examples you will see in tutorials will be Python, and several popular deep learning libraries primarily support Python (Google’s TensorFlow, Keras, Theano) and a large number of Data Scientists seem to favor Python. Moreover, this year’s IEEE Spectrum ranking of top programming has Python at the top spot with C and Java following closely.</p>
<p>However, there are other options and other considerations that people might want to think about depending on technology stack or skills availability. There are a few options on the JVM, Apache Spark supports Java, Scala, and Python. DeepLearning4J is a Java based, distributed, deep learning library that is pitching itself at the Enterprise. In addition, TensorFlow has offered Java APIs for use in addition to Python (although Python remains the primary language for its use).</p>
<blockquote><p><strong>A large number of Data Scientists seem to favor Python.</strong></p></blockquote>
</div>
</div>
</div>
</div>
<div class="page" title="Page 3">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>Furthermore, there are a few Java-based traditional ML libraries (not deep learning) such as Stanford’s NLP library or Apache OpenNLP.</p>
<p>Ultimately, the choice of language will hinge on the problem that needs to be solved. For instance, for a computer vision problem, it is advisable to start with a pre-trained model with state-of-the-art performance instead of training a fresh model from scratch. The availability of these pre-trained models can often dictate the choice of language in such cases. TensorFlow has a set of pre-trained models available <a href="https://github.com/tensorflow/models" target="_blank" rel="noopener noreferrer">here</a>.</p>
<h2>Engineering best practices</h2>
<p><strong>JAXenter: Could you name three engineering best practices that can be applied to machine learning? </strong></p>
<p><strong>Sumanas Sarma &amp; Rob Hinds: </strong></p>
<h3>Unit testing</h3>
<div class="page" title="Page 3">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>A typical Machine Learning pipeline will have lots of moving parts and lots of steps in the process, and given it can take a lot of time to train a ML model, it’s really important to have the individual steps as well tested as possible. Imagine waiting for days for a model to train just to find that a pre-processing data clean up step has a simple bug in it that renders all the training useless! To this end, it’s a good idea to spend some effort early on to build out common testing infrastructure, this will save time later when experimenting with different approaches and will help ensure you are testing the different experiments in a consistent manner.</p>
<h3>Modular/reusable code</h3>
<div class="page" title="Page 3">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>As mentioned above, there are lots of steps in a ML pipeline, and whilst the quickest thing for a one-off experiment might be to hack everything into a script, you will reap the benefits of thinking about how the code is structured and can be reused — a simple example being the preprocessing steps that clean up data sets or transform inputs — you might want to re-use those across different experiments.</p>
<h3>Documentation</h3>
<div class="page" title="Page 3">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>ML pipelines can be complex beasts, so documenting what experiments are doing and why is especially important whilst working in a professional team, as there is a good chance there are other members of your team, as well as the chance that someone else will have to pick up and understand the code after you.</p>
<p><strong>JAXenter: Do Agile best practices translate well to artificial intelligence and/or machine learning?</strong></p>
<p><strong>Sumanas Sarma &amp; Rob Hinds: </strong>In general, agile best practices can and should be applied to many aspects of machine learning development, but in doing so presents a different set of challenges.</p>
<div class="page" title="Page 3">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>For example, early on in a project all the effort will be on research and investigating possible approaches to tackle a given problem (and confirming that it is actually possible to solve with ML). These may be longer running tasks than a normal development ticket and looser criteria for completion.</p>
<p>That said, tying research “spikes” into the existing development cycle helps track the progress of lines of research, and also helps provide more visibility to wider development teams about progress. It may be that the team has several ML engineers and research fans-out early on, following several different lines of investigation. Whilst not always possible, you can aim to have research spikes that last the length of the sprint (fortnight or so) with the aim of having a go/no-go call at the end of the sprint as to whether the approach shows promise to warrant further research or whether it should be dropped for a different investigation.</p>
<blockquote><p><strong>The biggest misconception about machine learning is that it is applicable for all problems</strong>,<strong>and that everyone should be doing it.</strong></p></blockquote>
</div>
</div>
</div>
</div>
<div class="page" title="Page 4">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>Following the sprint cycles also means the ML stays connected with the wider engineering team and can attend stand-ups (although don’t expect too much of a daily update in research tasks) and sprint demos (which are always fun when there is a ML demo!).</p>
<p>As research progresses, and the team starts to narrow in on an approach, then more agile processes can be used, as the engineers start to think about getting models trained, productionised and the infrastructure that needs to be built to support that.</p>
<p><strong>JAXenter: What is the biggest misconception about ML?</strong></p>
<p><strong>Sumanas Sarma &amp; Rob Hinds: </strong>That it is applicable for all problems, and that everyone should be doing it. ML is well suited to several distinct types of problems, but there are also some problems that don’t fit so well. Furthermore, even if ML can solve the problem at hand, that still doesn’t mean it’s the right approach — there are still lots and lots of problems that are best solved with traditional algorithms or rule based systems.</p>
<p><strong>JAXenter: According to this year’s <span class="s2">Stack Overflow developer survey</span>, machine learning specialists are runner-ups in the “best paid” race. Why is this skill so sought-after now?</strong></p>
<p><strong>Sumanas Sarma &amp; Rob Hinds: </strong>Artificial intelligence (AI) and machine learning (ML) are really trending concepts right now. For example, at Google’s recent I/O 2017 event, they really put ML front and center with plans to bake it into all their products, and most of the big players in technology applying ML techniques (whether it be fraud detection, facial recognition in photos or smarter voice controlled apps) we are continuing to see a trend in new and old companies trying to get on board and start seeing how they can use AI and Machine Learning. According to a recent Narrative Science survey, 38% of enterprises surveyed were already using AI, with 62% expecting to be using it by 2018.</p>
<div class="page" title="Page 5">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>With this surge in interest in the area amongst companies, there is no surprise that there is fierce competition for talent in an area that is relatively young and very fast paced in terms of new approaches and techniques being developed — so it’s to be expected that those with the skills and experience can demand good salaries.</p>
<p><strong>JAXenter: What does the future hold for ML?</strong></p>
<p><strong>Sumanas Sarma &amp; Rob Hinds: </strong>This is an interesting question because the answer depends largely on how we end up using ML solutions. At present, ML projects are best utilised where they are used in conjunction with manual oversight. Imagine a customer service desk: it is now common for these operations to offer a text based chat interface as an alternative to email/phone first-tier support. Instead of replacing this interface with a chatbot, it is better to allow the chatbot to deal with queries (like “where is my order?”, “I can’t get X to work!” etc) and allow the chatbot to escalate to a human operator when it is apparent that the solution is not simple.</p>
<div class="page" title="Page 5">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>On a wider research and industrial scale, it is incredibly fascinating to see the applications of Deep Learning and other Machine Learning techniques being applied to solve problems in innovative ways. Consider AtomNet, one of the first deep neural network aimed at drug design. It discovers chemical features and tries to predict candidate biomolecues for disease targets. See <a href="https://arxiv.org/pdf/1510.02855.pdf" target="_blank" rel="noopener noreferrer">here</a> for more info.</p>
<p>Finally, on a note of caution and trust, it is crucial that people and companies understand what it is that they are aiming to get out of ML, and how it can be used to their advantage. Right now, companies may be scrambling to add it to their product but when engineers don’t understand how an algorithm gets its results, it can be difficult to trust the system, particularly if the consequences of incorrect or biased results are detrimental to the people using it ( ref article ). EU legislation is trying to address some of these issues at a larger, more formal level which seeks to prevent decisions that may be detrimental to a person “based solely on automated processing” (<a href="http://data.europa.eu/eli/reg/2016/679/oj" target="_blank" rel="noopener noreferrer">Article 22 </a>).</p>
<p><strong>JAXenter: What fascinates you about ML?</strong></p>
<p><strong>Sumanas Sarma &amp; Rob Hinds: </strong>I think it’s a really interesting field at the moment, as there is so much data available and with the increasing computing power (and the availability of cloud based resources) it’s getting really exciting to see the different problems that ML is proving effective on — from self driving cars, image recognition and natural language voice interfaces — it really seems to be starting to deliver some of the promises of old Sci-Fi movies!</p>
<div class="page" title="Page 5">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>I think on a very simple level though, the idea that a machine can learn to generalise is pretty mind blowing at first – having been so used to the idea that machines run with very specific instructions. I remember my mind was blown by the concept of Unsupervised Learning – the idea that a computer could just be given a whole lot of data and just learn from that, with no other input about what was right or wrong. Word2Vec is a really neat demonstration of how effective this can be.</p>
</div>
</div>
</div>
</div>
<div class="page" title="Page 6">
<div class="section">
<div class="layoutArea">
<div class="column">
<p><strong>JAXenter: What can attendees get out of your JAX London talk?</strong></p>
<p><strong>Sumanas Sarma &amp; Rob Hinds: </strong>We will go through some real life stories of how we have been trying to research and build ML models to solve a problem in a commercial environment and what went well, what failed and what we learnt along the way. We should also have a fun demo of an ML model running in the cloud!</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://www.aiuniverse.xyz/machine-learning-essentials-best-practices-categories-and-misconceptions/">Machine Learning essentials: Best practices, categories and misconceptions</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/machine-learning-essentials-best-practices-categories-and-misconceptions/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
