Projects

Banditnet with Partial Support

Research assistant to Thorsten Joachims on the Banditnet project. Using logged contextual bandit feedback for training deep neural networks. I worked on testing edge cases in banditnet, to try to understand how banditnet preforms when it has varying amounts of incorrect data, and varying softmax lambda values. Here is our paper on the process: Banditnet with Partial Support.

InterOp

Write in any programming language, all in the same source file.

Some things are just better in one language than another, but all languages have their shortcomings. Why make the trade-off? interOp allows you to leverage the power of all programming languages, without forcing yourself to stick to one language. Want to implement strong data analysis with R, but don't want to sacrifice the powerful machine learning of Python libraries? Now you don't have to, with interOp. interOp is also great for teams. Recently the development community has experienced a fragmentation of programming languages. interOp allows multiple developers to write in their preferred languages and work together to build one cohesive program; the way development should be. github.

Prime Factorization Methods & b division attack

Through my number theory research im my free time I have been able to derive a few valuable things regarding prime factorization. The first of which is I have derived an equation that can estimate the distance between two prime factors, q & p, which is extremely helpful for determining a tight range on possible values for each, this results up to a 98% reduction in steps needed to find prime factors.

The b division attack is very interesting. There are strong rules in place while generating RSA keys that insure, q – p is a very large number while maximizing p, given q > p. These rules help maximize the number of steps it would take to crack, but they don’t insure against, what I call a “b division” attack. It is the case that if the distance from the square root of q*p can be written in terms of b/ some integer divisor –b is the distance between q and p / 2—then you can factor the number q*p in O(n) time. Cases where this attack can be preformed are rare.

If this sounds interesting here is my paper, (still a work in progress): Prime Facotization Methods

nnCore

I build nnCore as part of an independent study I did on machine learning. It was built with the intent of being a simple yet comprehensive neural network library that is well commented. This library was built to be light weight in comparison to most full-featured neuralnet libraries. This was a very fun project as a got to build a neural net library from the ground up, learning a lot as I went, and I experimented with different optimizations of the various algorithms within the library. I then went and published nnCore as an R-library, for anyone to use!

nnCore training results.

nnCore Installation and source code.

© Henry E Samuelson 2021