If we don’t exactly know what we are testing, how can we test? In my previous algorithm test engineering article, I discussed the testing and analysis of more classical algorithms, such as binary search. While the overall testing of algorithms can be complicated, most classical algorithms can be described as having quite clearly defined inputs, outputs, […]
Read More Algorithm Test Engineering Part 2: Machine Learning
Recently I had a discussion about what it means to test an algorithm, or what it means to do algorithm test engineering. I couldn’t quite come up with a convincing definition for myself. At a basic level, maybe you figure out some basic rules of the algorithm, give it some input and output. Check the results. But I believe there is more to it, and this is what I explore in this article.
Read More Algorithm Test Engineering: Exploratory Job Analysis
Monero employs many techniques to enhance the cryptocurrency users privacy. In this article, I take a look at two of these, Ring Signatures for sender anonymity, and Stealth Addresses for receiver anonymity.
Read More Mapping Ring Signatures and Stealth Addresses in Monero
ms including Bitcoin, Amazon’s Dynamo DB, and the ZFS filesystem. The basic concept is quite simple, but some of the clever applications are not so obvious.
Read More Merkle Trees: Concepts and Use Cases
Precision, Recall, and F1-Score. These relate to getting a finer-grained idea of how well a classifier is doing, as opposed to just looking at overall accuracy. In this article, I provide a bit deeper look at each.
Read More A Look at Precision, Recall, and F1-Score
aditional software. With traditional software, the specification and its relation to the implementation is typically quite explicit. With more complex machine learning-based system, this relation is harder to explicitly define. This makes testing them more complicated. In this article, I present an updated version of my earlier work on using metamorphic testing for ML based systems.
Read More Metamorphic Testing of Machine-Learning Based Systems
An Explanation Between Cartoons and Greek Symbols If you spend a bit more time reading about cryptocurrencies, blockchains, or many other related technologies, you likely run into the term zero knowledge proofs (ZKP). To me, the term sounds like a paradox. How can you prove anything with zero knowledge? How do you event know what to […]
Read More Zero Knowledge Proofs: Example with Pedersen Commitments in Monero
results these days. Libraries such as Keras, PyTorch, and HuggingFace NLP make the application of the latest research and models in the area a (relatively) easy task. In this article, I implement and compare two different NLP based classifier model architectures using the Firefox browser issue tracker data.
Read More Building an NLP classifier: Example with Firefox Issue Reports
I find probability distributions would often be useful tools to know and understand, but the explanations are not always very intuitive. The Poisson distribution is one of the probability distributions that I have run into quite often. Most recently I ran into it when preparing for some AWS Machine Learning certification questions. Since this is […]
Read More Understanding the Poisson Distribution