One thing that is exciting to me is that machine learning is the next level of abstraction in our tools for thoughts, giving us ways to deal with fuzzy and ultra-high-dimensional problems.
Machine learning can be viewed through optimization, probablity and information theoretical lenses, and each of them will give you understanding of a different aspect. One recent "click" I had in my head came from debating with colleagues who are really strong in optimization: they routinely define values, sets, functions etc. as the end result of an optimisation problem. And this makes total sense.
Going down to maths that most people might be familiar with from highschool, think about how you define a line in space, or a plane. You write down "y=f(m)=a+mx" for a line (which you could read: to find a point m times the length of x away from the anchor point of a line, start at the anchor and move m times along vector x") "P={x:dot(w,x-x0)=0}" for a plane (read: the set of all x for which the dot product is 0). These are two different forms of describing the objects, one which is expressed as a function* using the constraints placed on the object to move along on it, and the other simply as a concise way to express all constraints. You can move from one form to another for both objects, and finding these types of connections increases your understanding of these objects and how their constraints define their structures.
Now, optimisation problems are similarly defined by their cosntraints,but they are much more flexible and connected to reality. We describe constraints in the hierarchy of convex (LP, QP, SOCP,SDP, conal) and nonconvex ( aka. "fucking difficult to deal with") constraints and then develop optimisers that attempt to fulfill these constraints as best as possible given some data. If it's solvable, then we have a way to reason explicitly about very complex properties the data and the mathematical objects contained in it - which can be used to solve actual problems, like finding the pareto frontier of a decision space, or laying out an UI nicely.
The machine learning takes this and pushes it to it's extreme, finding ways to navigate extremely high dimensional spaces and reason about the objects contained therein. Things like word vectors, latent representations and the "natural image manifold", finding ways to discover the "separation" of classes by building generative models and measuring distances in the latent space, visualisation techniques like curch plots, TSNE ...all of this extends our ability to reason about and understand data and ultimately our world.
That's one thing that excites me at least