Increasingly, sensing devices are required that are not only capable of acquiring complex embedded signals, but also capable of performing high value analyses on the signals they acquire. Machine learning algorithms play an important role, because they enable modeling and inference over signals that may otherwise be too complex to model through analytical methods. This talk looks at such algorithms first from the perspective of enabling them within severely resource constrained devices, and then from the perspective of exploiting them towards more resource efficient implementations of systems. Through several systems based on custom IC prototypes, this talk explores many avenues that machine learning algorithms give rise to for addressing system bottlenecks. The focus on resource efficient implementations directs us to use the algorithms in new ways, then leading to unconventional circuit architectures.