| Mods, just in case this isn't intended as self-advertisement. I'm a hobbyist and barely know what I am doing so looking for genuine feedback. First a relatively short backstory. I'm a former accountant who now works in commercial real estate acquisition (long story on that transition). It wasn't my intended trajectory career... but I joined the military early on (for several of reasons) then sort of followed that career path and took night classes to advance. Education-wise, I have a bachelor's in business management, focus on administration with just enough additional courses to qualify for a CPA. However, my passion has always been tech. So, I spend most of my free time learning and doing random projects (mostly relatively simple stuff like building basic programs, networking, and running a home lab). I'm sharing this not as a brag, I'm mediocre at best.. but so that you have a slight understanding of where I am at. Anyways, so I'm not an expert. I don't understand half the math that gets published in papers and can barely understand the program/implementation side. Sure, give me an accounting problem and I can write a python script for it... but a larger program, something production grade.. that's well beyond me. But occasionally, I get a bit of intuition, and can piece together things that I don't 100% understand... and I've also been toying around with AI quite a bit. With a little trial and error its relatively easy to learn to fine tune models. Getting slightly more adventurous, it's not even that difficult to create entirely new models. It's just that there is a time/cost limit. And I'm not rich. I don't have access to fancy servers and I couldn't afford it beyond a few hundred bucks every now and again. So I wanted to go small. not because it will be revolutionary, but because I can actually learn with it. And if I don't already sound dumb.. it will probably get dumber. So, for better or worse, I've had this idea about building AI from the ground up.. nothing super revolutionary, just to understand objects and actions. By this I mean 100% unsupervised learning. I give some model a data set of things and it classifies object. Not in the more traditional "this is a cat" sense but just the baseline "within this image there are objects.. find every unique object". I want and plan to do more, but for me this was the baseline. Essentially, I want to be able to feed a model a whole bunch of random "objects" and have it classify them. And I want to try out a bunch of different things on that data set. So... I created a simple program that generates a 16x16 grid with a 5 color pallet. Then it randomly selects a background color (with the others being assigned to object coloring), then it randomly selects a number of objects to create. The rules for object creation are relatively simple: 1 or more pixels, connected horizontally, vertically, or diagonally. Individual objects must be separated by the background (i.e. overlap makes them be assumed as one object). And with a little trial and error (and help from AI) it works! I can now generate at 16x16 grid and reduce that into a simplified text grid for input into the models. The irony of this whole thing is that, I presume, for most of you, this toy model approach is fairly intuitive.. for me it wasn't. I kinda sorta grasped the idea but wasn't able to figure out how to implement it.. not until (and somewhat random) I started diving into ARC-AGI. And I did this, not because I think I could ever figure it out.. but because I read some stuff on HRM (mostly hype, it seems).. then wandered around read the ARC-AGI stuff and then played around with their web tests (which I am also horrible at). But so.. I'm randomly looking at the online test (the more graphic.. try it yourself ones).. and it finally clicks. I'm seeing these objects, just random shapes on the screen.. and suddenly I'm like holy shit.. I now know how to create/describe a "unique" object. Anyways.. so that's my project or the current state of it. I figured out how to "reduce" objects into a toy concept and automatically generate them. My next big step is to try and build some models that can detect them. I know this is already solved.. but it's fun and I'll figure it out!! [link] [comments] |