<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Aditya Rohilla</title>
    <description>The latest articles on Forem by Aditya Rohilla (@adityarohilla94).</description>
    <link>https://forem.com/adityarohilla94</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F39781%2Fe5f41f1d-af76-4d27-b31c-fe2d348a6c26.png</url>
      <title>Forem: Aditya Rohilla</title>
      <link>https://forem.com/adityarohilla94</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/adityarohilla94"/>
    <language>en</language>
    <item>
      <title>My Summer Internship Experience at Walmart Labs</title>
      <dc:creator>Aditya Rohilla</dc:creator>
      <pubDate>Sat, 19 Oct 2019 22:27:23 +0000</pubDate>
      <link>https://forem.com/adityarohilla94/my-summer-internship-experience-at-walmart-labs-1dp7</link>
      <guid>https://forem.com/adityarohilla94/my-summer-internship-experience-at-walmart-labs-1dp7</guid>
      <description>&lt;p&gt;Now that I’m back at Arizona State University for my fall semester, this seems like a good time to share my Summer 2019 Internship experience with everyone.&lt;/p&gt;

&lt;p&gt;I decided to write this blog for anyone interested in applying at Walmart Labs for an Internship. The whole experience was full of learning and fun and I’ll always be grateful for this opportunity.&lt;/p&gt;

&lt;p&gt;I applied online and after my resume review, I went through 1 on-campus interview. The process varies according to team and position.&lt;/p&gt;

&lt;p&gt;My internship started on June 5th and ended on August 16th. I worked at the Davis Glass Technology Center at Bentonville, Arkansas as part of the Supply Chain Technology Tech group.&lt;/p&gt;

&lt;p&gt;Now to the fun part:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What I learned&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As I was a part of the Outbound Process team of the Supply Chain Tech group, our team developed applications (Native Android and Hybrid) for processing cases in Walmart Distribution Centers.&lt;/p&gt;

&lt;p&gt;On Day 1, I was paired up with a mentor who made sure I don’t face any issues and maximize my learning.&lt;/p&gt;

&lt;p&gt;As part of the team, I got an entirely new project to work on. I can’t share the details here due to obvious reasons but the work was exciting and solving an important problem. I researched a lot of solutions before designing and finally implemented the application. We tested the solution and kept iterating until we got something production-ready.&lt;/p&gt;

&lt;p&gt;I got a lot of support from the seniors in navigating the project, but they made sure I am making all the decisions. This kind of independence helped me in exploring different solutions before coming up with the optimal one.&lt;/p&gt;

&lt;p&gt;I also worked with other teams for some aspects of the project which helped me in witnessing the culture across the department. I learned about Internal applications and systems used in Walmart Distribution Centers (DCs) and how these interact with each other to manage World’s largest (whaaa..) Supply Chain.&lt;/p&gt;

&lt;p&gt;We also had weekly talks from Industry leaders like Greg Foran, Mark Lore and our CEO Doug McMillon (:D) where they enlightened us with their wisdom. They answered all our questions ranging across startups, businesses, career paths, Walmart and life.&lt;/p&gt;

&lt;p&gt;We also had regular “Lunch and Learn” events where we got to learn about topics like Agile, Product Management, Public speaking etc over lunch.&lt;/p&gt;

&lt;p&gt;From stakeholders meeting to Supply Chain town hall, everybody made sure the interns get full exposure and get to meet everyone. I can’t stress this enough, everybody was doing everything they can to make the internship experience awesome for us!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Work hard, Play harder!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;From the beginning of our internship to the end, we attended some awesome events organized specially for us.&lt;/p&gt;

&lt;p&gt;The Internship Experience team made sure we aren’t just working hard but partying hard as well. Every few weeks we had fun events organized for us. Let me just show you how it was:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OGikqpOM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/bsv9jf9ukcbro2v4kdv7.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OGikqpOM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/bsv9jf9ukcbro2v4kdv7.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bite Festival – Northwest Arkansas&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aCU2_cd1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ljebdjy94un2h228galu.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aCU2_cd1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ljebdjy94un2h228galu.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Wine tasting organized for the Interns 😀&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KutbcDxV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gh43jay1anbnchm4hm1p.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KutbcDxV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gh43jay1anbnchm4hm1p.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Annual Walmart Shareholders event&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9jLcOF6F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/qzr4sxgcb1o6et15lt7m.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9jLcOF6F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/qzr4sxgcb1o6et15lt7m.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
The one with the CEO Doug Mcmillon!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--v4YD9uSO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ud1zbkewx3zwtocjexnd.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--v4YD9uSO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ud1zbkewx3zwtocjexnd.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A talk with Trevor Noah!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B4UfoRU6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/m24e2rezjqveqvavhz93.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B4UfoRU6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/m24e2rezjqveqvavhz93.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Intern Welcome Party&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overall Experience&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I worked on interesting problems and made some lasting relationships. What else can you ask from an internship? Walmart is really that place where you can do both.&lt;/p&gt;

&lt;p&gt;My experience was fun and hopefully, someone reading this can use this information.&lt;/p&gt;

&lt;p&gt;Lastly, Arkansas is a really beautiful place with lots (and lots) of trees and nice weather. It also has a range of hikes and trails. Coming from Arizona, I loved spending time in nature and going on hikes. It was a surreal experience.&lt;/p&gt;

&lt;p&gt;Enjoy some pictures:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gqmRf_tu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/rby2jbvbv7oxbuzelvyr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gqmRf_tu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/rby2jbvbv7oxbuzelvyr.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u9y9NSKk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/utg2d6l012dswvg86c12.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u9y9NSKk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/utg2d6l012dswvg86c12.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZlnYJ3Pb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/xf13r6ltwibqkqovj8c0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZlnYJ3Pb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/xf13r6ltwibqkqovj8c0.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for everything Walmart!&lt;/p&gt;

</description>
      <category>walmart</category>
      <category>internship</category>
      <category>softwareengineering</category>
      <category>walmartlabs</category>
    </item>
    <item>
      <title>Want to ace technical interviews? Get started with Competitive Programming!</title>
      <dc:creator>Aditya Rohilla</dc:creator>
      <pubDate>Wed, 26 Jun 2019 14:47:28 +0000</pubDate>
      <link>https://forem.com/adityarohilla94/want-to-ace-technical-interviews-get-started-with-competitive-programming-42ig</link>
      <guid>https://forem.com/adityarohilla94/want-to-ace-technical-interviews-get-started-with-competitive-programming-42ig</guid>
      <description>&lt;p&gt;If you are preparing for Software Developer / Engineer jobs, you have to be prepared to go through rigorous technical interviews. All these interviews require good programming skills. &lt;/p&gt;

&lt;p&gt;Apart from impressive side projects and relevant experience, knowledge of Data Structures (DS) and Algorithm Design &amp;amp; Analysis (ADA) with good problem-solving skills are the most important things you’ll need to ace the interview.&lt;/p&gt;

&lt;p&gt;So how can you be a pro at both of these things?&lt;/p&gt;

&lt;p&gt;The answer is Competitive Programming! So what’s competitive programming?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Competitive programming is a mind sport usually held over the Internet or a local network, involving participants trying to program according to provided specifications. Contestants are referred to as sport programmers. Competitive programming is recognized and supported by several multinational software and Internet companies, such as Google and Facebook&lt;/em&gt; — Wikipedia&lt;/p&gt;

&lt;p&gt;Here’s how it works: On the programming websites, during a practice session, you’ll be given a programming problem which you have to solve.&lt;br&gt;
You can write your solution in any programming language you’re comfortable with. Your solutions will be judged by online judges. Additionally, your solution should work under certain time and space limits.&lt;/p&gt;

&lt;p&gt;It should pass all the test cases (given and hidden) to get accepted. In a live coding competition, everything is same, except there will be a time limit for submitting solutions as well.&lt;br&gt;
As mentioned, a lot of big tech companies like Facebook and Google hire through Competitive programming contests.&lt;/p&gt;

&lt;p&gt;Another reason for diving in (if you need one) is, it will really help you improve your problem-solving skills, something that is required in every field including software development.&lt;/p&gt;

&lt;p&gt;In addition to this, competitive programming (or algorithmic programming) helps you understand the complexity and performance of programming problems and thus gives you a better idea of implementation of projects.&lt;/p&gt;

&lt;p&gt;While working on any aspect of development, you’ll always have to make choices regarding the solution of the problem in hand.&lt;/p&gt;


&lt;li&gt;Which database to choose?
&lt;/li&gt;
&lt;li&gt;How to decrease the storage size of data?
&lt;/li&gt;
&lt;li&gt;Which data structure will be best for decreasing the retrieval time?

&lt;p&gt;Competitive programming will make you better at making such decisions.&lt;/p&gt;

&lt;p&gt;How to get started?&lt;/p&gt;

&lt;h2&gt;Step 1: Choose a programming language&lt;/h2&gt;

&lt;p&gt;Choose a programming language you’re most comfortable with. It can be a high-level language like Python or a middle-level language like C.&lt;/p&gt;

&lt;p&gt;Choose something you have at least have 3–4 months of experience with. I personally prefer C++ as I have years of experience coding with it.&lt;/p&gt;

&lt;p&gt;If you’re a newbie to programming, I’ll recommend Python, given its easy syntax and predefined library functions. Check Python tutorials available &lt;a href="https://www.learnpython.org/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Step 2: Learn about Time and Space complexity&lt;/h2&gt;

&lt;p&gt;Most of the times, there is more than one solution to a problem. How do &lt;br&gt;
we rank which one is the optimal solution?&lt;/p&gt;

&lt;p&gt;Online judges rank them with respect to their performance.&lt;/p&gt;

&lt;p&gt;Performance is measured through:&lt;/p&gt;


&lt;/li&gt;
&lt;li&gt;Time complexity
&lt;/li&gt;
&lt;li&gt;Space complexity

&lt;p&gt;Time complexity refers to the execution time of all the operations in a program. All operations of a computer take constant time. Execution time also depends on external factors like hardware but these factors are ignored by online judges.&lt;/p&gt;

&lt;p&gt;The execution time is considered in three scenarios:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Best case&lt;/li&gt;
&lt;li&gt;Average case&lt;/li&gt;
&lt;li&gt;Worst case&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Worst case is considered as the execution time for judging the performance of code most of the times.&lt;br&gt;
Let’s look at this with a simple example:&lt;/p&gt;

&lt;p&gt;int sum = 0;&lt;br&gt;
for (int i = 0; i &amp;lt; n; i++){&lt;br&gt;
sum += i;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;What is the time complexity of this code snippet?&lt;br&gt;
In this case, the execution time will be the time taken by the for loop to complete. If the other operations take a constant time c.&lt;/p&gt;

&lt;p&gt;Then the execution time will be dependent on the variable ’n’, the total execution time will be:&lt;/p&gt;

&lt;p&gt;(c + n*c)&lt;/p&gt;

&lt;p&gt;If n increases, the total execution time also increases.&lt;br&gt;
We judge time complexity in Big-O (O) terms.&lt;br&gt;
For the above snippet, the complexity will be O(n) as it completely depends on the size of n.&lt;/p&gt;

&lt;p&gt;Space complexity, similar to time complexity, is also used to judge the performance of the running program.&lt;/p&gt;

&lt;p&gt;It is a measure of the amount of working storage (or memory) an algorithm needs. While choosing a data structure for a particular problem, space complexity plays a big role.&lt;/p&gt;

&lt;p&gt;As with time complexity, we’re mostly concerned with how the space needs grow, in Big-O terms, as the size n of the input problem grows.&lt;/p&gt;

&lt;p&gt;int sum(int a[], int n) {&lt;br&gt;
int r = 0;&lt;br&gt;
for (int i = 0; i &amp;lt; n; ++i) {&lt;br&gt;
r +=a[i];&lt;br&gt;
}&lt;br&gt;
return r;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;This code snippet requires n units of space for array a and 1 unit of space of r, that is O(n + 1) which is equivalent to O(n)&lt;br&gt;
Check out this article for learning more about space complexity.&lt;/p&gt;

&lt;h2&gt;Step 3: Learn the basic Data Structures and Algorithm concepts&lt;/h2&gt;

&lt;p&gt;Nearly every coding problem will require the usage of a specific data structure or algorithm for an optimal solution. &lt;/p&gt;

&lt;p&gt;Knowing basic data structures and algorithmic techniques before you start is a must. As listed in the Data Structures for Interviews presentation, here is a list of data structures to learn. &lt;/p&gt;

&lt;p&gt;I’ll be briefly covering the following:&lt;/p&gt;


&lt;/li&gt;
&lt;li&gt;Array
&lt;/li&gt;
&lt;li&gt;Linked List
&lt;/li&gt;
&lt;li&gt;Stack
&lt;/li&gt;
&lt;li&gt;Queue
&lt;/li&gt;
&lt;li&gt;Tree
&lt;/li&gt;
&lt;li&gt;Trie
&lt;/li&gt;
&lt;li&gt;Graph

&lt;p&gt;&lt;strong&gt;Array&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An array is a data structure consisting of a collection of elements (values or variables), each identified by at least one array index or key.&lt;/p&gt;

&lt;p&gt;int[] array = {1, 3, 5, 2, 6, 9};&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Index: 0 1 2 3 4 5&lt;/li&gt;
&lt;li&gt;Value: 1 3 5 2 6 9&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The simplest type of data structure is a linear array, also called a one-dimensional array. The array elements can be int or long or any other datatype depending on the initialization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linked list&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F2v723ayp7jee8iw4zk80.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F2v723ayp7jee8iw4zk80.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A Linked list is a data structure consisting of nodes linked together. The nodes are not stored adjacently in memory. Rather, each node points to the next.&lt;/p&gt;

&lt;p&gt;Under the simplest form, each node is composed of data and a reference (in other words, a link) to the next node in the sequence. This structure allows for efficient insertion or removal of elements from any position in the sequence during iteration.&lt;/p&gt;

&lt;p&gt;Many variations of linked lists like doubly linked list and circular linked lists are used in different problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6w4dak1offq3myoosijg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6w4dak1offq3myoosijg.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A stack is a linear data structure that follows the LIFO (Last in First out) principle.&lt;/p&gt;

&lt;p&gt;A Stack has two principle operations:&lt;br&gt;
Push — Add an element to Stack&lt;br&gt;
Pull — Remove an element from Stack&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Queue&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsbxudqkpebtlw70balfl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsbxudqkpebtlw70balfl.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Like a queue in real life, the queue data structure also follows the FIFO (First in First out) principle. Front refers to the starting of the queue and Rear refers to the ending of the queue.&lt;/p&gt;

&lt;p&gt;The process of adding an element in the Rear is called Enqueue and the and process of removing an element from the Front is called Dequeue.&lt;br&gt;
Depending on the problem, different implementations of the queue (other than the linear unidirectional queue) like a circular queue, doubly ended queue and priority queue are also used.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tree&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fb5bf1u90cuwt1cyxrw2r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fb5bf1u90cuwt1cyxrw2r.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A Tree is a data structure that starts at the root node and then multiplies recursively into child nodes with no child pointing towards the root node.&lt;/p&gt;

&lt;p&gt;The Tree can be directional or non directional, weighted or unweighted and similarly, have many other variations.&lt;br&gt;
For programming competitions the most used tree variations are Binary tree, Binary Search Tree, N-ary Tree, Segment Tree, Red Black Tree and Heaps.&lt;/p&gt;

&lt;p&gt;Binary Tree will be used in a lot of problems. Learn more about them &lt;a href="https://www.geeksforgeeks.org/applications-of-tree-data-structure/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trie&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Trie (or a radix tree) is a efficient tree variation for retrieving data. Using it, the time complexity of search operations can be brought to O(n) where n is the length of the string. Learn more about a Trie here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Graph&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fb036o9t546gv2fawy2pf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fb036o9t546gv2fawy2pf.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Graph consists of nodes interconnected (partially or completely) to each other. The connections between these nodes are called Edges or Arcs.&lt;/p&gt;

&lt;p&gt;Graph can be weighted, unweighted, non directional, directional and can take many other forms. Tree is also a kind of Graph.&lt;br&gt;
It’s implemented through an adjacency list of Adjacency matrix. Learn more about a Graph here.&lt;/p&gt;

&lt;p&gt;There are many other Advanced Data Structures. Check out the complete list here.&lt;/p&gt;

&lt;p&gt;Some important Algorithmic approaches:&lt;/p&gt;

&lt;p&gt;We’ll be covering a few important algorithmic approaches below:&lt;/p&gt;


&lt;/li&gt;
&lt;li&gt;Sorting
&lt;/li&gt;
&lt;li&gt;Dynamic Programming (DP)
&lt;/li&gt;
&lt;li&gt;Greedy Approach
&lt;/li&gt;
&lt;li&gt;Recursion
&lt;/li&gt;
&lt;li&gt;Divide and Conquer (D&amp;amp;C)

&lt;p&gt;&lt;strong&gt;Sorting&lt;/strong&gt; — Sorting algorithms are used for sorting elements of linear data structures. There are a lot of sorting algorithms based on different time and space complexities. Bubble sort, quick sort, merge sort being the most famous ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dynamic Programming (DP)&lt;/strong&gt; — Dynamic programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems, solving each of those subproblems just once, and storing their solutions.&lt;/p&gt;

&lt;p&gt;Dynamic programming checks the all the options exhaustively before finding the best one. It’s a very popular algorithmic technique and is used for solving a lot of problems like:&lt;/p&gt;


&lt;/li&gt;
&lt;li&gt;Longest Increasing Subsequence
&lt;/li&gt;
&lt;li&gt;Box Stacking
&lt;/li&gt;
&lt;li&gt;Building Bridges

&lt;p&gt;It’s a favorite of Job interviewers as well, asked in companies such as Adobe, Google, and Amazon. Check this tutorial for more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Greedy Approach&lt;/strong&gt; — Greedy is an algorithmic paradigm that chooses a locally optimal choice at every stage instead of going through all the options at choosing in the end (unlike Dynamic Programming).&lt;br&gt;
It may not give the best solution in all the cases. Djikstra’s algorithm is a popular example of the greedy technique.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recursion&lt;/strong&gt; — Recursion occurs when a thing is defined in terms of itself or of its type. The Fibonacci sequence is a classic example of recursion where the function calls itself till the base condition of n&amp;lt;2 is met.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Divide and Conquer (D&amp;amp;C)&lt;/strong&gt; — A Divide and Conquer algorithm works by recursively breaking down a problem into two or more sub-problems of the same or related type, until these become simple enough to be solved directly.&lt;/p&gt;

&lt;p&gt;The solutions to the sub-problems are then combined to give a solution to the original problem.&lt;/p&gt;

&lt;p&gt;It’s similar to dynamic programming with one difference:&lt;br&gt;
Divide and conquer exhaustively checks all the options (even recomputing values which were earlier computed)&lt;/p&gt;

&lt;p&gt;Dynamic programming stores the solutions of sub-problems to avoid recomputing. Merge sort is one example of D&amp;amp;C.&lt;/p&gt;

&lt;p&gt;This is just a rough list to get you started. You will learn more along the way.&lt;/p&gt;

&lt;h2&gt;Step 4: Taking part in online coding challenges&lt;/h2&gt;

&lt;p&gt;These are some of the most popular online judges you can use to practice your programming skills:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hackerrank&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fqijxvka260utucqxef3r.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fqijxvka260utucqxef3r.jpeg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s a programming challenge website where you can also apply for jobs as well as compete for them in hiring contests by solving challenges.&lt;br&gt;
The platform supports a variety of programming languages including Java, C++, PHP, and Python. Furthermore, it also has practice domains other than data structures and algorithms like Regex and SQL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Euler&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Project Euler focusses on the mathematical concepts important for programming and solving problems. It helps in developing computational skills required for high-level programming competitions.&lt;/p&gt;

&lt;p&gt;The problems varies from basic to hard. It’s really good for learning new concepts in a fun way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LeetCode&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjjlziitr3buxw9r63w7v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjjlziitr3buxw9r63w7v.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://leetcode.com/" rel="noopener noreferrer"&gt;Leetcode&lt;/a&gt; is a top competitive programming platform which supports many programming languages (more than 32!).&lt;/p&gt;

&lt;p&gt;Other than its coding competitions, it’s also famous for its tutorials which cover a variety of topics. It is the most used platform among experienced developers as well. You'll find questions tagged topic and company wise. I highly recommend using this. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CodeChef&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codechef.com/" rel="noopener noreferrer"&gt;Codechef&lt;/a&gt; is a well known competitive coding platform of Directi group.&lt;/p&gt;

&lt;p&gt;It’s program such as Go for Gold are very famous for motivating coders to do well at the ACM International Collegiate Programming Contest, an annual multi-tiered competitive programming competition.&lt;br&gt;
Additionally, it’s brilliant programming tutorials and intensive contests make it a favorite of coders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SPOJ&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://spoj.com/" rel="noopener noreferrer"&gt;Sphere Online Judge (SPOJ)&lt;/a&gt; is a little different from other coding platforms. The questions on this platform are stated in simple and direct language (and hence my favorite) which makes it a good spot for beginners.&lt;/p&gt;

&lt;p&gt;Tasks are prepared by its community of problem setters or are taken from previous programming contests.&lt;br&gt;
Another important factor for choosing SPOJ over others is that it also offers content in Polish, Portuguese and Vietnamese languages other than English.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Topcoder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the most famous (and best!) programming websites in the world, &lt;a href="https://topcoder.com/" rel="noopener noreferrer"&gt;Topcoder&lt;/a&gt; hosts some of the best and toughest competitive programming competitions in the world.&lt;/p&gt;

&lt;p&gt;It attracts famous coders from all over including the popular algorithmic coder Petr Mitrichev. Topcoder tutorials are another good reason to spend time on this platform.&lt;/p&gt;

&lt;h2&gt;Step 5: Practice, practice, and practice!&lt;/h2&gt;

&lt;p&gt;Practice day and night. Participate in competitions. Learn from experienced coders.&lt;br&gt;
The more you code, the more you’ll be able to find the suitable data structure and/or algorithm for a specific problem (this is a very important skill for a software development).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;TIP&lt;/em&gt;: When not participating in competitions, practice solutions and different approaches on a whiteboard while thinking out loud. This will help you in job interviews.&lt;/p&gt;

&lt;p&gt;After some months of practice, you’ll be able to ace programming interviews of most companies and land your dream job.&lt;/p&gt;

&lt;h3&gt;All the best!&lt;/h3&gt;
&lt;/li&gt;

</description>
      <category>competitiveprogramming</category>
      <category>technicalinterviews</category>
      <category>softwaredevelopment</category>
      <category>coding</category>
    </item>
    <item>
      <title>Any Cordova plugin to call an external Android app?</title>
      <dc:creator>Aditya Rohilla</dc:creator>
      <pubDate>Wed, 26 Jun 2019 14:00:29 +0000</pubDate>
      <link>https://forem.com/adityarohilla94/any-cordova-plugin-to-call-an-external-android-app-1mfc</link>
      <guid>https://forem.com/adityarohilla94/any-cordova-plugin-to-call-an-external-android-app-1mfc</guid>
      <description>&lt;p&gt;I have tried many online available plugins for this task but none of them are working. I need to pass an explicit intent to launch my own Android application.&lt;/p&gt;

</description>
      <category>cordova</category>
      <category>hybridapps</category>
      <category>android</category>
    </item>
    <item>
      <title>A brief Introduction to Support Vector Machine</title>
      <dc:creator>Aditya Rohilla</dc:creator>
      <pubDate>Fri, 02 Nov 2018 17:15:21 +0000</pubDate>
      <link>https://forem.com/adityarohilla94/a-brief-introduction-to-support-vector-machine-4ne8</link>
      <guid>https://forem.com/adityarohilla94/a-brief-introduction-to-support-vector-machine-4ne8</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uL6WXdnC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AQRD9cnsROioDuQ1lQeaE7g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uL6WXdnC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AQRD9cnsROioDuQ1lQeaE7g.jpeg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Support Vector Machine (SVM) is one of the most popular Machine Learning Classifiers. It falls under the category of Supervised learning algorithms and uses the concept of Margin to classify between classes. It gives better accuracy than KNN, Decision Trees and Naive Bayes Classifier and hence is quite useful.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who should read this post
&lt;/h3&gt;

&lt;p&gt;Anyone with some prior knowledge of Machine Learning concepts and is Interested in learning about SVM. If you are a beginner in the field, go through &lt;a href="https://towardsdatascience.com/machine-learning-for-beginners-d247a9420dab"&gt;this&lt;/a&gt; post first.&lt;/p&gt;

&lt;p&gt;After reading this post, you’ll know:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What is SVM exactly&lt;/li&gt;
&lt;li&gt;How to use SVM classifier from Sklearn (Python)&lt;/li&gt;
&lt;li&gt;Tuning its parameters for better results&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So let’s begin!&lt;/p&gt;

&lt;h3&gt;
  
  
  What is SVM?
&lt;/h3&gt;

&lt;p&gt;As mentioned earlier, SVM lies in the class of supervised algorithms used for classification. Let’s start with a 2 class example:&lt;/p&gt;

&lt;p&gt;Given classes X1 and X2, we want to find the decision boundary which separates the 2 classes the best i.e. with minimum error.&lt;/p&gt;

&lt;p&gt;SVM does this with a &lt;strong&gt;&lt;em&gt;‘Hyperplane’&lt;/em&gt;&lt;/strong&gt;. Now this hyperplane can be a single line in case of a 2-dimensional data and can be a plane in 3-dimensional one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Mo-c0mqV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/599/0%2ALqJ35BlMaAWGfPLv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mo-c0mqV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/599/0%2ALqJ35BlMaAWGfPLv.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Without going into the math behind the curtain, let’s understand some basic functionality here.&lt;/p&gt;

&lt;p&gt;Support Vector Machines uses the concept of &lt;strong&gt;&lt;em&gt;‘Support Vectors&lt;/em&gt;‘&lt;/strong&gt; , which are the closest points to the hyperplane.&lt;/p&gt;

&lt;p&gt;In the above example, the red line denotes our decision boundary that separates the 2 classes (Blue stars and Red circles) and the hyphened lines represent our ‘ &lt;strong&gt;&lt;em&gt;Margin’&lt;/em&gt;&lt;/strong&gt; , the gap we want between the Support Vectors of both the classes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Boundaries are Important&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Margin is defined with the help of the Support Vectors (hence the name). In our example, Yellow stars and Yellow circles are the Support Vectors defining the Margin. The better the gap, the better the classifier works. Hence support vectors play an important role in developing the classifier.&lt;/p&gt;

&lt;p&gt;Every new data point in test data will be classified according to this Margin. If it lies on the right side of it, it’ll be classified as a Red circle otherwise as a Blue star.&lt;/p&gt;

&lt;p&gt;The best part is, SVM can also classify non-linear data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d7skGpeZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/0%2AWPin9_Rxa7YRYGWJ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d7skGpeZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/0%2AWPin9_Rxa7YRYGWJ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Things get a little tricky in the case of non-linear data. Here SVM uses the &lt;strong&gt;‘K_ernel-trick_‘&lt;/strong&gt; , it uses a kernel function to map the non-linear data to higher dimensions so that it becomes linear and finds the decision boundary there.&lt;/p&gt;

&lt;p&gt;A Kernel function is always used by SVM, whether it is linear or non-linear data, but its main function comes into play when the data is inseparable in its current form. Here, the Kernel function adds dimensions to the problem for classification.&lt;/p&gt;

&lt;p&gt;Now let’s see some code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using Support Vector Machines
&lt;/h3&gt;

&lt;p&gt;With the help of Sklearn, you can harness the power of SVM classifier with just a few lines of code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from sklearn import svm

#Our linear classifier
clf = svm.SVC(kernel='linear')

''' 
X\_train is your training data y\_train are the corresponding labels y\_pred are the predicted samples of the test data X\_test 
'''

#Training our classifier on the training set with labels
clf.fit(X\_train, y\_train)

#Predicting output on the Test set 
y\_pred = clf.predict(X\_test)

#Finding the Accuracy 
print("Accuracy:",metrics.accuracy\_score(y\_test, y\_pred))
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;In this case, we are using a linear kernel as you can see. Depending on the problem, you can use different types of Kernel functions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linear&lt;/li&gt;
&lt;li&gt;Polynomial&lt;/li&gt;
&lt;li&gt;Radial Basis Function&lt;/li&gt;
&lt;li&gt;Gaussian&lt;/li&gt;
&lt;li&gt;Laplace&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;… and many more. Choosing the right kernel function is important for building the classifier. In the next section, we will tune the hyperparameters for our making our classifier even better.&lt;/p&gt;

&lt;p&gt;You can access the complete code &lt;a href="https://github.com/aditya1994/Machine-Learning-Data-Science-Scripts/blob/master/SVM.py"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you’re bored, here’s a cute cat!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pMtr3uo2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/474/0%2AxVCO6kFL8keODteE.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pMtr3uo2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/474/0%2AxVCO6kFL8keODteE.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tuning Parameters
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Kernel&lt;/strong&gt; : We have already discussed how important kernel functions are. Depending on the nature of the problem, the right kernel function has to be chosen as the kernel-function defines the hyperplane chosen for the problem. &lt;a href="https://data-flair.training/blogs/svm-kernel-functions/"&gt;Here&lt;/a&gt; is a list of the most used Kernel functions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regularization&lt;/strong&gt; : Ever heard of the term Overfitting? If you haven’t I think you should learn some basics from &lt;a href="https://machinelearningmastery.com/overfitting-and-underfitting-with-machine-learning-algorithms/"&gt;here&lt;/a&gt;. In SVM, to avoid overfitting, we choose a Soft Margin, instead of a Hard one i.e. we let some data points enter our margin intentionally (but we still penalize it) so that our classifier don’t overfit on our training sample. Here comes an important parameter Gamma (γ), which controls Overfitting in SVM. The higher the gamma, the higher the hyperplane tries to match the training data. Therefore, choosing an optimal gamma to avoid Overfitting as well as Underfitting is the key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Error Penalty:&lt;/strong&gt; Parameter C represents the error penalty for misclassification for SVM. It maintains the tradeoff between smoother hyperplane and misclassifications. As mentioned earlier, we do allow some misclassifications for avoiding overfitting of our classifier.&lt;/p&gt;

&lt;p&gt;These are the most important parameters used for tuning the SVM classifier.&lt;/p&gt;

&lt;p&gt;Overall SVM has many advantages as it provides high accuracy, has low complexity and also works quite well for non-linear data. The disadvantage being, it needs more training time compared to other algorithms such as Naive Bayes.&lt;/p&gt;

&lt;p&gt;That is it for SVMs! If you have any questions, let me know in the comments.&lt;/p&gt;

&lt;p&gt;Congratulations on making it to the end of the post!&lt;/p&gt;

&lt;p&gt;Here’s a cookie for you&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EEHqCS1q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AWE2DXEU7XW0ieQZS.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EEHqCS1q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AWE2DXEU7XW0ieQZS.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you enjoyed this post, don’t forget to &lt;em&gt;like&lt;/em&gt;!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Originally published at&lt;/em&gt; &lt;a href="https://adityarohilla.com/2018/11/02/a-brief-introduction-to-support-vector-machine/"&gt;&lt;em&gt;adityarohilla.com&lt;/em&gt;&lt;/a&gt; &lt;em&gt;on November 2, 2018.&lt;/em&gt;&lt;/p&gt;




</description>
      <category>machinelearning</category>
      <category>beginnercoding</category>
      <category>python</category>
      <category>svm</category>
    </item>
    <item>
      <title>What is Deep learning and Why you should know about it!</title>
      <dc:creator>Aditya Rohilla</dc:creator>
      <pubDate>Wed, 16 May 2018 06:42:27 +0000</pubDate>
      <link>https://forem.com/adityarohilla94/what-is-deep-learning-and-why-you-should-know-about-it-1lji</link>
      <guid>https://forem.com/adityarohilla94/what-is-deep-learning-and-why-you-should-know-about-it-1lji</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F1%2A86dDGzwyawUu_MpEO2im1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F1%2A86dDGzwyawUu_MpEO2im1g.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Deep learning is a subfield of &lt;a href="http://www.expertsystem.com/machine-learning-definition/" rel="noopener noreferrer"&gt;Machine learning (ML)&lt;/a&gt; that is continuously changing the world around us.&lt;/p&gt;

&lt;p&gt;From driverless cars to speech recognition, Deep learning is making everything possible. It has become a hot topic of Industry as well as academia and is affecting nearly all Industries related to ML and &lt;a href="https://www.techopedia.com/definition/190/artificial-intelligence-ai" rel="noopener noreferrer"&gt;Artificial Intelligence (AI)&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Deep learning?
&lt;/h3&gt;

&lt;p&gt;According to Wikipedia:&lt;/p&gt;

&lt;p&gt;“Deep learning (also known as deep structured learning or hierarchical learning) is part of a broader family of Machine learning methods based on learning data representations, as opposed to task-specific algorithms. Learning can be supervised, semi-supervised or unsupervised.”&lt;/p&gt;

&lt;p&gt;Deep learning is inspired by human brain and how it perceives information through interaction of neurons.&lt;/p&gt;

&lt;p&gt;It’s a branch of Machine Learning and is implemented through large Artificial Neural Networks (&amp;gt; 100 layers). Training ANNs for deep learning requires lots of &lt;strong&gt;labeled&lt;/strong&gt; data as well as huge computing power.&lt;/p&gt;

&lt;p&gt;So why “deep” learning? For starters, it requires extensive learning through a large interconnected network. As said by Jurgen Schmidhuber in his paper &lt;a href="https://arxiv.org/pdf/1404.7828v4.pdf" rel="noopener noreferrer"&gt;Deep Learning in Neural Networks: An Overview&lt;/a&gt; :&lt;/p&gt;

&lt;p&gt;“At which problem depth does Shallow Learning end, and Deep Learning begin? Discussions with Deep learning experts have not yet yielded a conclusive response to this question. […], let me just define for the purposes of this overview: problems of depth &amp;gt; 10 require Very Deep Learning.”&lt;/p&gt;

&lt;p&gt;The “deep" also refers to the hundreds of hidden layers of Artificial Neural Networks (ANN) used in Deep learning.&lt;/p&gt;

&lt;p&gt;There are different types of ANNs for different scenarios which will be discussed later.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why you should know about Deep learning
&lt;/h3&gt;

&lt;p&gt;Nearly every industry is going to be affected by AI and ML and Deep learning play a big role in it.&lt;/p&gt;

&lt;p&gt;No matter if you are in healthcare or legal, chances are you may get replaced by a highly autonomous robot one day.&lt;/p&gt;

&lt;p&gt;Deep learning has improved significantly in terms of accuracy over the period of years and is still evolving. Understanding its nuances will help us all.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Intelligence is the ability to adapt to change.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;~ &lt;em&gt;Stephen Hawking&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some of the wide applications of Deep learning are:&lt;/p&gt;

&lt;p&gt;Self Driving cars : A self-driving car is the ultimate evolutionary goal of developing ADASes — Advanced Driver Assistance Systems, to the point when there’s nobody to assist anymore.&lt;/p&gt;

&lt;p&gt;Visual tasks, including, but probably not limited to Lane detection, Pedestrian detection, and Road signs recognition, are solved with deep learning.&lt;/p&gt;

&lt;p&gt;The importance of deep learning for autonomous driving systems can be illustrated by the fact that Nvidia maintains long-term relationships with car manufacturers, working on embedded and real-time operating systems designed exactly for these purposes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F1%2A1CACaG4LFH_XqprMBdc9PA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F1%2A1CACaG4LFH_XqprMBdc9PA.jpeg"&gt;&lt;/a&gt;Google Self Driving Car&lt;/p&gt;

&lt;p&gt;Humanoids : In a similar fashion, Deep learning is making interacting between robots and humans simpler day by day.&lt;/p&gt;

&lt;p&gt;We already have personal agents like Alexa and Siri, that listen to our queries and answer intelligently.&lt;/p&gt;

&lt;p&gt;The great advances in NLP and Image processing enabled by Deep learning are the reason behind such efficient interaction.&lt;/p&gt;

&lt;p&gt;Looking at the rate of growth of Robotics and Deep learning, autonomous robots are not that far away. A good example being Sophia, a human-like robot by Hanson Robotics.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F1%2Ak3FtGQ--FGgyFFZx89KJ7A.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F1%2Ak3FtGQ--FGgyFFZx89KJ7A.jpeg"&gt;&lt;/a&gt;Sophia from Hanson Labs&lt;/p&gt;

&lt;p&gt;Healthcare : The adoption of Deep learning in healthcare is on the rise and solving a variety of problems for patients, hospitals and the healthcare industry overall.&lt;/p&gt;

&lt;p&gt;Research has shown that Deep Neural Networks can be trained to produce radiological findings with high reliability by training from archives of millions of patient scans collected by healthcare systems.&lt;/p&gt;

&lt;p&gt;These kinds of advancements will soon change the health and personal care scenario by replacing doctors with AI empowered expert systems and autonomous robot surgeons.&lt;/p&gt;

&lt;p&gt;Space travel : As featured &lt;a href="https://futurism.com/nasa-ai-will-lead-the-future-of-space-exploration/" rel="noopener noreferrer"&gt;here &lt;/a&gt;, Steve Chien and Kiri Wagstaff of NASA’s Jet Propulsion Laboratory have predicted that in the future, the behavior of space probes will be governed by AI rather than human prompts from earth. Again the tremendous ability of Deep learning of finding patterns from raw data comes into play.&lt;/p&gt;

&lt;p&gt;Already companies like SpaceX is using the power of AI for sending probes into space. Soon with the help of AI, humans may inhibit other planets!&lt;/p&gt;

&lt;p&gt;This should be enough to give you an idea of the vast applications of Deep learning.&lt;/p&gt;

&lt;p&gt;Unless you’re planning to head in the woods, sooner or later you’ll get to interact with DL in some manner.&lt;/p&gt;

&lt;p&gt;Now let’s have a look at how it works!&lt;/p&gt;

&lt;h3&gt;
  
  
  Implementation of Deep learning
&lt;/h3&gt;

&lt;p&gt;Given that Deep learning is implemented by large Artificial Neural Networks (or simply Neural Networks or NN), let’s find out more about them.&lt;/p&gt;

&lt;h4&gt;
  
  
  What’s an Artificial Neural Network
&lt;/h4&gt;

&lt;p&gt;Artificial Neural Network is a network of interconnected artificial neurons (or nodes) where each neuron represents an information processing unit.&lt;/p&gt;

&lt;p&gt;These interconnected nodes pass information to each other mimicking the human brain.&lt;/p&gt;

&lt;p&gt;The nodes interact with each other and share information. Each node takes input and performs some operation on it before passing it forward.&lt;/p&gt;

&lt;p&gt;The operation is performed by what is called an Activation function (non-linearity). It converts the input into output which can be then used as input for other nodes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F500%2F1%2ABQ0SxdqC9Pl_3ZQtd3e45A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F500%2F1%2ABQ0SxdqC9Pl_3ZQtd3e45A.png"&gt;&lt;/a&gt;Artificial Neural Network&lt;/p&gt;

&lt;p&gt;The links between nodes are mostly weighted. These weights are adjusted based on the performance of the network.&lt;/p&gt;

&lt;p&gt;If the performance (or accuracy) is high, then weights are not adjusted, but if the performance is low, then weights are adjusted through specific calculation.&lt;/p&gt;

&lt;p&gt;The leftmost layer of neurons is called the input layer and similarly, the rightmost layer is called the output layer. All the other layers in between are called hidden layers.&lt;/p&gt;

&lt;p&gt;In a nutshell, an Artificial neuron takes input from other nodes and applies the activation function to the weighted sum of input (Transfer function) and then passes the output.&lt;/p&gt;

&lt;p&gt;A threshold (called Bias) is added to the weighted sum to avoid passing no (zero) output.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2Ag1MLj3pjVEkCa8rOrv--4w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2Ag1MLj3pjVEkCa8rOrv--4w.png"&gt;&lt;/a&gt;Artificial Neuron&lt;/p&gt;

&lt;p&gt;For knowing more about Neural Networks, check &lt;a href="https://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html" rel="noopener noreferrer"&gt;NEURAL NETWORKS&lt;/a&gt; by Christos Stergiou and Dimitrios Siganos. They’ve done a good job.&lt;/p&gt;

&lt;h4&gt;
  
  
  How are Neural Networks used for Deep learning
&lt;/h4&gt;

&lt;p&gt;For Deep learning, several Neural Network layers (&amp;gt; 100) are connected in feedforward or feedback style to pass information to each other.&lt;/p&gt;

&lt;p&gt;Feedforward: This is the simplest type of ANN. Here, the connections do not form a cycle and hence has no loops.&lt;/p&gt;

&lt;p&gt;The input is directly fed to output (in a single direction ) through a series of weights. They are extensively used in pattern recognition.&lt;/p&gt;

&lt;p&gt;This type of organization is referred as bottom-up or top-down.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F904%2F0%2Az-JrlafoPM51BEsW.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F904%2F0%2Az-JrlafoPM51BEsW.png"&gt;&lt;/a&gt;Feedforward ANN&lt;/p&gt;

&lt;p&gt;Feedback (or recurrent): The connections in feedback network can move in both directions. The output derived from the network is fed back into the network to improve performance (loops).&lt;/p&gt;

&lt;p&gt;These networks can become very complicated but are comparatively more powerful than feedforward. Feedback networks are dynamic and are extensively used for a lot of problems.&lt;/p&gt;

&lt;p&gt;Now let’s discuss some specific types of ANN extensively used for DL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Most popular ANNs used for Deep Learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1) Multilayer Perceptrons: These are the most basic Neural Networks with feedforward networks. They generally use non-linear activation functions (like Tang or Relu) and compute the losses through Mean Square Error (MSE) or Logloss.&lt;/p&gt;

&lt;p&gt;The loss is back propagated to adjust the weights and make the model more accurate.&lt;/p&gt;

&lt;p&gt;They are generally used as a part of a bigger deep learning network. Read more about Multiple Perceptrons here: &lt;a href="http://deeplearning.net/tutorial/mlp.html" rel="noopener noreferrer"&gt;Intro to Multiple Perceptrons.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) Convoluted Neural Network: Convoluted Neural Networks (ConvNet or CNN) are similar to ordinary Neural Networks but their architecture is specifically designed for images as input.&lt;/p&gt;

&lt;p&gt;In particular, unlike a regular Neural Network, the layers of a ConvNet have neurons arranged in 3 dimensions: width, height, depth.&lt;/p&gt;

&lt;p&gt;They are particularly suitable for spatial data, object recognition and image analysis using multidimensional neurons structures.&lt;/p&gt;

&lt;p&gt;One of the main reason for the popularity of the deep learning lately is due to Convoluted Neural Networks. Some of the common usages of Convoluted Neural Networks are self-driving cars, drones, computer vision and text analytics.&lt;/p&gt;

&lt;p&gt;Read more about the dynamics of Convolution Neural Network here : &lt;a href="https://medium.com/technologymadeeasy/the-best-explanation-of-convolutional-neural-networks-on-the-internet-fbb8b1ad5df8" rel="noopener noreferrer"&gt;Convoluted Neural Networks&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;3) Recurrent Neural Networks: RNNs are also a feedforward network, however with recurrent memory loops which take the input from the previous and/or same layers (backpropagation).&lt;/p&gt;

&lt;p&gt;Here connections form a directed graph along a graph. This gives them a unique capability to model along the time dimension and arbitrary sequence of events and inputs.&lt;/p&gt;

&lt;p&gt;In simpler terms, for any given instant, the network maintains a memory up till that moment and therefore can predict the next action.&lt;/p&gt;

&lt;p&gt;Most common types of RNN model is Long Short Term Memory (LSTM) network. RNNs are used for next work prediction and grammar learning.&lt;/p&gt;

&lt;p&gt;Read more about them here: &lt;a href="https://www.analyticsvidhya.com/blog/2017/12/introduction-to-recurrent-neural-networks/" rel="noopener noreferrer"&gt;Intro to RNN&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This post aimed at providing a brief introduction to the massive field of Deep learning.&lt;/p&gt;

&lt;p&gt;I have skipped mathematical details of some of the concepts discussed to facilitate understanding. Thanks for reading!&lt;/p&gt;

&lt;p&gt;Stay tuned for more articles.&lt;/p&gt;




</description>
      <category>machinelearning</category>
      <category>artificialintelligence</category>
      <category>deeplearning</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
