# data[].attributes.body
Shift(Spatial) Invariance 
A shift invariant system is the discrete equivalent of a time-invariant system, defined such that if y(n) is the response of the system to x(n), then y(n–k) is the response of the system to x(n–k).That is, in a shift-invariant system the contemporaneous response of the output variable to a given value of the input variable does not depend on when the input occurs; time shifts are irrelevant in this regard.

For CNNs, it means the invariance to small displacements of the input image. For example in the character recognition task, if you train the system by shifting (i.e. sliding the images to left/right and up/down) a little bit, you learn a more generalized detector, that works under difficult conditions, i.e. when the character is not perfectly aligned to the center of the image. Similar precautions are also taken for rotation, scale, etc.
 Shift_Invariance.pdf
Shift_Invariance.pdf
PDF document
padlet drive
Nearest Neighbor Algorithm
Nearest Neighbor Algorithm 
K-NN(k-Nearest Neighbor Algorithm) is an non parametric lazy learning algorithm. When you say a technique is non parametric , it means that it does not make any assumptions on the underlying data distribution. (This is pretty useful , as in the real world , most of the practical data does not obey the typical theoretical assumptions made ) 

It is also a lazy algorithm. What this means is that it does not use the training data points to do any generalization. In other words, there is no explicit training phase or it is very minimal. This means the training phase is pretty fast . Lack of generalization means that KNN keeps all the training data. More exactly, all the training data is needed during the testing phase. (Well this is an exaggeration, but not far from truth). Most of the lazy algorithms – especially KNN – makes decision based on the entire training data set (in the best case a subset of them).


The dichotomy is pretty obvious here – There is a non existent or minimal training phase but a costly testing phase. The cost is in terms of both time and memory. More time might be needed as in the worst case, all data points might take point in decision. More memory is needed as we need to store all training data.


These are the steps of the algorithm:

Start on an random vertex as current vertex.
Find out the shortest edge connecting current vertex and an unvisited vertex V.
Set current vertex to V.
mark V as visited.
If all the vertices in domain are visited, then terminate.
Go to step 2.

The sequence of the visited vertices is the output of the algorithm.

The nearest neighbour algorithm is easy to implement and executes quickly, but it can sometimes miss shorter routes which are easily noticed with human insight, due to its "greedy" nature. As a general guide, if the last few stages of the tour are comparable in length to the first stages, then the tour is reasonable; if they are much greater, then it is likely that there are much better tours. 
Greedy Algorithm
Greedy Algorithm 
A greedy algorithm is a mathematical process that looks for simple, easy-to-implement solutions to complex, multi-step problems by deciding which next step will provide the most obvious benefit.
Annotated Case Study for Algorithms
Annotated Case Study for Algorithms

# data[].attributes.body
Shift(Spatial) Invariance 
A shift invariant system is the discrete equivalent of a time-invariant system, defined such that if y(n) is the response of the system to x(n), then y(n–k) is the response of the system to x(n–k).That is, in a shift-invariant system the contemporaneous response of the output variable to a given value of the input variable does not depend on when the input occurs; time shifts are irrelevant in this regard.

For CNNs, it means the invariance to small displacements of the input image. For example in the character recognition task, if you train the system by shifting (i.e. sliding the images to left/right and up/down) a little bit, you learn a more generalized detector, that works under difficult conditions, i.e. when the character is not perfectly aligned to the center of the image. Similar precautions are also taken for rotation, scale, etc.
 Shift_Invariance.pdf
Shift_Invariance.pdf
PDF document
padlet drive
Nearest Neighbor Algorithm
Nearest Neighbor Algorithm 
K-NN(k-Nearest Neighbor Algorithm) is an non parametric lazy learning algorithm. When you say a technique is non parametric , it means that it does not make any assumptions on the underlying data distribution. (This is pretty useful , as in the real world , most of the practical data does not obey the typical theoretical assumptions made ) 

It is also a lazy algorithm. What this means is that it does not use the training data points to do any generalization. In other words, there is no explicit training phase or it is very minimal. This means the training phase is pretty fast . Lack of generalization means that KNN keeps all the training data. More exactly, all the training data is needed during the testing phase. (Well this is an exaggeration, but not far from truth). Most of the lazy algorithms – especially KNN – makes decision based on the entire training data set (in the best case a subset of them).


The dichotomy is pretty obvious here – There is a non existent or minimal training phase but a costly testing phase. The cost is in terms of both time and memory. More time might be needed as in the worst case, all data points might take point in decision. More memory is needed as we need to store all training data.


These are the steps of the algorithm:

Start on an random vertex as current vertex.
Find out the shortest edge connecting current vertex and an unvisited vertex V.
Set current vertex to V.
mark V as visited.
If all the vertices in domain are visited, then terminate.
Go to step 2.

The sequence of the visited vertices is the output of the algorithm.

The nearest neighbour algorithm is easy to implement and executes quickly, but it can sometimes miss shorter routes which are easily noticed with human insight, due to its "greedy" nature. As a general guide, if the last few stages of the tour are comparable in length to the first stages, then the tour is reasonable; if they are much greater, then it is likely that there are much better tours. 
Greedy Algorithm
Greedy Algorithm 
A greedy algorithm is a mathematical process that looks for simple, easy-to-implement solutions to complex, multi-step problems by deciding which next step will provide the most obvious benefit.

# data[].attributes.body
A shift invariant system is the discrete equivalent of a time-invariant system, defined such that if y(n) is the response of the system to x(n), then y(n–k) is the response of the system to x(n–k).That is, in a shift-invariant system the contemporaneous response of the output variable to a given value of the input variable does not depend on when the input occurs; time shifts are irrelevant in this regard.

For CNNs, it means the invariance to small displacements of the input image. For example in the character recognition task, if you train the system by shifting (i.e. sliding the images to left/right and up/down) a little bit, you learn a more generalized detector, that works under difficult conditions, i.e. when the character is not perfectly aligned to the center of the image. Similar precautions are also taken for rotation, scale, etc.

# data[].attributes.body
K-NN(k-Nearest Neighbor Algorithm) is an non parametric lazy learning algorithm. When you say a technique is non parametric , it means that it does not make any assumptions on the underlying data distribution. (This is pretty useful , as in the real world , most of the practical data does not obey the typical theoretical assumptions made )

It is also a lazy algorithm. What this means is that it does not use the training data points to do any generalization. In other words, there is no explicit training phase or it is very minimal. This means the training phase is pretty fast . Lack of generalization means that KNN keeps all the training data. More exactly, all the training data is needed during the testing phase. (Well this is an exaggeration, but not far from truth). Most of the lazy algorithms – especially KNN – makes decision based on the entire training data set (in the best case a subset of them).

The dichotomy is pretty obvious here – There is a non existent or minimal training phase but a costly testing phase. The cost is in terms of both time and memory. More time might be needed as in the worst case, all data points might take point in decision. More memory is needed as we need to store all training data.

These are the steps of the algorithm:

1. Start on an random vertex as current vertex.

2. Find out the shortest edge connecting current vertex and an unvisited vertex V.

3. Set current vertex to V.

4. mark V as visited.

5. If all the vertices in domain are visited, then terminate.

6. Go to step 2.

The sequence of the visited vertices is the output of the algorithm.

The nearest neighbour algorithm is easy to implement and executes quickly, but it can sometimes miss shorter routes which are easily noticed with human insight, due to its "greedy" nature. As a general guide, if the last few stages of the tour are comparable in length to the first stages, then the tour is reasonable; if they are much greater, then it is likely that there are much better tours.

# data[].attributes.body
A greedy algorithm is a mathematical process that looks for simple, easy-to-implement solutions to complex, multi-step problems by deciding which next step will provide the most obvious benefit.

With a goal of reaching the largest-sum, at each step, the greedy algorithm will choose what appears to be the optimal immediate choice, so it will choose 12 instead of 3 at the second step, and will not reach the best solution, which contains 99.

# data[].attributes.body
Dijkstra's algorithm is an algorithm for finding the shortest paths between nodes in a graph. Dijkstra's original variant found the shortest path between two nodes, but a more common variant fixes a single node as the "source" node and finds shortest paths from the source to all other nodes in the graph, producing a shortest-path tree.

# data[].attributes.body
Brute force (also known as brute force cracking) is a trial and error method used by application programs to decode encrypted data such as passwords or Data Encryption Standard (DES) keys, through exhaustive effort (using brute force) rather than employing intellectual strategies.

Brute force is a type of algorithm that tries a large number of patterns to solve a problem.A common example of a brute force algorithm is a security threat that attempts to guess a password using known common passwords. Such an algorithm might also try dictionary words or even every combination of ASCII strings of a certain length.

# data[].attributes.body
is the language we use for articulating how long an algorithm takes to run. It's how we compare the efficiency of different approaches to a problem.

is used to describe the performance or complexity of an algorithm. it is an extremely simplified mathematical way of analyzing how long an algorithm with a given number of inputs (n) will take to complete it’s task.