In ST's STM32F1 libraries, the assert_param macro is defined in the stm32f10x_conf.h header file which is included in the project templates. I don't remember how/where you were supposed to #include the header, but I assume the STM32F4 libs have a similar setup.
BTW, one big annoyance I had with Keil's IDE is that it always, unconditionally adds its bundled copy of the firmware library to your include paths. If you try to add another version to your project, you'll get completely insane, undiagnosable build errors until everything is configured exactly right.